code cleanup; diamond ops && lambda refs (#279)

* code cleanup; diamond ops && lambda refs

* fix checkstyle;javadocs

* install latest JDK 11 version for travis ci

* reset travis ci back to original
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel.java b/client/am/console/src/main/java/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel.java
index 4384413..474957f 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel.java
@@ -119,35 +119,35 @@
 
         columns.add(new PropertyColumn<>(new ResourceModel("owner"), "owner", "owner"));
 
-        columns.add(new BooleanConditionColumn<AuthProfileTO>(new StringResourceModel("impersonationAccounts")) {
+        columns.add(new BooleanConditionColumn<>(new StringResourceModel("impersonationAccounts")) {
 
             @Override
             protected boolean isCondition(final IModel<AuthProfileTO> rowModel) {
                 return !rowModel.getObject().getImpersonationAccounts().isEmpty();
             }
         });
-        columns.add(new BooleanConditionColumn<AuthProfileTO>(new StringResourceModel("googleMfaAuthTokens")) {
+        columns.add(new BooleanConditionColumn<>(new StringResourceModel("googleMfaAuthTokens")) {
 
             @Override
             protected boolean isCondition(final IModel<AuthProfileTO> rowModel) {
                 return !rowModel.getObject().getGoogleMfaAuthTokens().isEmpty();
             }
         });
-        columns.add(new BooleanConditionColumn<AuthProfileTO>(new StringResourceModel("googleMfaAuthAccounts")) {
+        columns.add(new BooleanConditionColumn<>(new StringResourceModel("googleMfaAuthAccounts")) {
 
             @Override
             protected boolean isCondition(final IModel<AuthProfileTO> rowModel) {
                 return !rowModel.getObject().getGoogleMfaAuthAccounts().isEmpty();
             }
         });
-        columns.add(new BooleanConditionColumn<AuthProfileTO>(new StringResourceModel("u2fRegisteredDevices")) {
+        columns.add(new BooleanConditionColumn<>(new StringResourceModel("u2fRegisteredDevices")) {
 
             @Override
             protected boolean isCondition(final IModel<AuthProfileTO> rowModel) {
                 return !rowModel.getObject().getU2FRegisteredDevices().isEmpty();
             }
         });
-        columns.add(new BooleanConditionColumn<AuthProfileTO>(new StringResourceModel("webAuthnAccount")) {
+        columns.add(new BooleanConditionColumn<>(new StringResourceModel("webAuthnAccount")) {
 
             @Override
             protected boolean isCondition(final IModel<AuthProfileTO> rowModel) {
@@ -162,7 +162,7 @@
     public ActionsPanel<AuthProfileTO> getActions(final IModel<AuthProfileTO> model) {
         ActionsPanel<AuthProfileTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<AuthProfileTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -170,44 +170,44 @@
             public void onClick(final AjaxRequestTarget target, final AuthProfileTO ignore) {
                 model.setObject(AuthProfileRestClient.read(model.getObject().getKey()));
                 target.add(authProfileModal.setContent(new ModalDirectoryPanel<>(
-                        authProfileModal,
-                        new AuthProfileItemDirectoryPanel<ImpersonationAccount>(
-                                "panel", authProfileModal, model.getObject(), pageRef) {
+                    authProfileModal,
+                    new AuthProfileItemDirectoryPanel<ImpersonationAccount>(
+                        "panel", authProfileModal, model.getObject(), pageRef) {
 
-                    @Override
-                    protected List<ImpersonationAccount> getItems() {
-                        return model.getObject().getImpersonationAccounts();
-                    }
+                        @Override
+                        protected List<ImpersonationAccount> getItems() {
+                            return model.getObject().getImpersonationAccounts();
+                        }
 
-                    @Override
-                    protected ImpersonationAccount defaultItem() {
-                        return new ImpersonationAccount();
-                    }
+                        @Override
+                        protected ImpersonationAccount defaultItem() {
+                            return new ImpersonationAccount();
+                        }
 
-                    @Override
-                    protected String sortProperty() {
-                        return "impersonated";
-                    }
+                        @Override
+                        protected String sortProperty() {
+                            return "impersonated";
+                        }
 
-                    @Override
-                    protected String paginatorRowsKey() {
-                        return AMConstants.PREF_AUTHPROFILE_IMPERSONATED_PAGINATOR_ROWS;
-                    }
+                        @Override
+                        protected String paginatorRowsKey() {
+                            return AMConstants.PREF_AUTHPROFILE_IMPERSONATED_PAGINATOR_ROWS;
+                        }
 
-                    @Override
-                    protected List<IColumn<ImpersonationAccount, String>> getColumns() {
-                        List<IColumn<ImpersonationAccount, String>> columns = new ArrayList<>();
-                        columns.add(new PropertyColumn<>(new ResourceModel("impersonated"),
+                        @Override
+                        protected List<IColumn<ImpersonationAccount, String>> getColumns() {
+                            List<IColumn<ImpersonationAccount, String>> columns = new ArrayList<>();
+                            columns.add(new PropertyColumn<>(new ResourceModel("impersonated"),
                                 "impersonated", "impersonated"));
-                        return columns;
-                    }
-                }, pageRef)));
+                            return columns;
+                        }
+                    }, pageRef)));
                 authProfileModal.header(new Model<>(getString("impersonationAccounts", model)));
                 authProfileModal.show(true);
             }
         }, ActionLink.ActionType.TYPE_EXTENSIONS, AMEntitlement.AUTH_PROFILE_UPDATE);
 
-        panel.add(new ActionLink<AuthProfileTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -215,44 +215,46 @@
             public void onClick(final AjaxRequestTarget target, final AuthProfileTO ignore) {
                 model.setObject(AuthProfileRestClient.read(model.getObject().getKey()));
                 target.add(authProfileModal.setContent(new ModalDirectoryPanel<>(
-                        authProfileModal,
-                        new AuthProfileItemDirectoryPanel<GoogleMfaAuthToken>(
-                                "panel", authProfileModal, model.getObject(), pageRef) {
+                    authProfileModal,
+                    new AuthProfileItemDirectoryPanel<GoogleMfaAuthToken>(
+                        "panel", authProfileModal, model.getObject(), pageRef) {
 
-                    @Override
-                    protected List<GoogleMfaAuthToken> getItems() {
-                        return model.getObject().getGoogleMfaAuthTokens();
-                    }
+                        @Override
+                        protected List<GoogleMfaAuthToken> getItems() {
+                            return model.getObject().getGoogleMfaAuthTokens();
+                        }
 
-                    @Override
-                    protected GoogleMfaAuthToken defaultItem() {
-                        return new GoogleMfaAuthToken();
-                    }
+                        @Override
+                        protected GoogleMfaAuthToken defaultItem() {
+                            return new GoogleMfaAuthToken();
+                        }
 
-                    @Override
-                    protected String sortProperty() {
-                        return "issueDate";
-                    }
+                        @Override
+                        protected String sortProperty() {
+                            return "issueDate";
+                        }
 
-                    @Override
-                    protected String paginatorRowsKey() {
-                        return AMConstants.PREF_AUTHPROFILE_GOOGLEMFAAUTHTOKENS_PAGINATOR_ROWS;
-                    }
+                        @Override
+                        protected String paginatorRowsKey() {
+                            return AMConstants.PREF_AUTHPROFILE_GOOGLEMFAAUTHTOKENS_PAGINATOR_ROWS;
+                        }
 
-                    @Override
-                    protected List<IColumn<GoogleMfaAuthToken, String>> getColumns() {
-                        List<IColumn<GoogleMfaAuthToken, String>> columns = new ArrayList<>();
-                        columns.add(new DatePropertyColumn<>(new ResourceModel("issueDate"), "issueDate", "issueDate"));
-                        columns.add(new PropertyColumn<>(new ResourceModel("otp"), "otp", "otp"));
-                        return columns;
-                    }
-                }, pageRef)));
+                        @Override
+                        protected List<IColumn<GoogleMfaAuthToken, String>> getColumns() {
+                            List<IColumn<GoogleMfaAuthToken, String>> columns = new ArrayList<>();
+                            columns.add(new DatePropertyColumn<>(
+                                new ResourceModel("issueDate"), "issueDate", "issueDate"));
+                            columns.add(new PropertyColumn<>(
+                                new ResourceModel("otp"), "otp", "otp"));
+                            return columns;
+                        }
+                    }, pageRef)));
                 authProfileModal.header(new Model<>(getString("googleMfaAuthTokens", model)));
                 authProfileModal.show(true);
             }
         }, ActionLink.ActionType.EDIT_APPROVAL, AMEntitlement.AUTH_PROFILE_UPDATE);
 
-        panel.add(new ActionLink<AuthProfileTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -260,46 +262,46 @@
             public void onClick(final AjaxRequestTarget target, final AuthProfileTO ignore) {
                 model.setObject(AuthProfileRestClient.read(model.getObject().getKey()));
                 target.add(authProfileModal.setContent(new ModalDirectoryPanel<>(
-                        authProfileModal,
-                        new AuthProfileItemDirectoryPanel<GoogleMfaAuthAccount>(
-                                "panel", authProfileModal, model.getObject(), pageRef) {
+                    authProfileModal,
+                    new AuthProfileItemDirectoryPanel<GoogleMfaAuthAccount>(
+                        "panel", authProfileModal, model.getObject(), pageRef) {
 
-                    @Override
-                    protected List<GoogleMfaAuthAccount> getItems() {
-                        return model.getObject().getGoogleMfaAuthAccounts();
-                    }
+                        @Override
+                        protected List<GoogleMfaAuthAccount> getItems() {
+                            return model.getObject().getGoogleMfaAuthAccounts();
+                        }
 
-                    @Override
-                    protected GoogleMfaAuthAccount defaultItem() {
-                        return new GoogleMfaAuthAccount();
-                    }
+                        @Override
+                        protected GoogleMfaAuthAccount defaultItem() {
+                            return new GoogleMfaAuthAccount();
+                        }
 
-                    @Override
-                    protected String sortProperty() {
-                        return "id";
-                    }
+                        @Override
+                        protected String sortProperty() {
+                            return "id";
+                        }
 
-                    @Override
-                    protected String paginatorRowsKey() {
-                        return AMConstants.PREF_AUTHPROFILE_GOOGLEMFAAUTHACCOUNTS_PAGINATOR_ROWS;
-                    }
+                        @Override
+                        protected String paginatorRowsKey() {
+                            return AMConstants.PREF_AUTHPROFILE_GOOGLEMFAAUTHACCOUNTS_PAGINATOR_ROWS;
+                        }
 
-                    @Override
-                    protected List<IColumn<GoogleMfaAuthAccount, String>> getColumns() {
-                        List<IColumn<GoogleMfaAuthAccount, String>> columns = new ArrayList<>();
-                        columns.add(new PropertyColumn<>(new ResourceModel("id"), "id", "id"));
-                        columns.add(new DatePropertyColumn<>(
+                        @Override
+                        protected List<IColumn<GoogleMfaAuthAccount, String>> getColumns() {
+                            List<IColumn<GoogleMfaAuthAccount, String>> columns = new ArrayList<>();
+                            columns.add(new PropertyColumn<>(new ResourceModel("id"), "id", "id"));
+                            columns.add(new DatePropertyColumn<>(
                                 new ResourceModel("registrationDate"), "registrationDate", "registrationDate"));
-                        columns.add(new PropertyColumn<>(new ResourceModel("name"), "name", "name"));
-                        return columns;
-                    }
-                }, pageRef)));
+                            columns.add(new PropertyColumn<>(new ResourceModel("name"), "name", "name"));
+                            return columns;
+                        }
+                    }, pageRef)));
                 authProfileModal.header(new Model<>(getString("googleMfaAuthAccounts", model)));
                 authProfileModal.show(true);
             }
         }, ActionLink.ActionType.EXECUTE, AMEntitlement.AUTH_PROFILE_UPDATE);
 
-        panel.add(new ActionLink<AuthProfileTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -307,46 +309,46 @@
             public void onClick(final AjaxRequestTarget target, final AuthProfileTO ignore) {
                 model.setObject(AuthProfileRestClient.read(model.getObject().getKey()));
                 target.add(authProfileModal.setContent(new ModalDirectoryPanel<>(
-                        authProfileModal,
-                        new AuthProfileItemDirectoryPanel<U2FDevice>(
-                                "panel", authProfileModal, model.getObject(), pageRef) {
+                    authProfileModal,
+                    new AuthProfileItemDirectoryPanel<U2FDevice>(
+                        "panel", authProfileModal, model.getObject(), pageRef) {
 
-                    @Override
-                    protected List<U2FDevice> getItems() {
-                        return model.getObject().getU2FRegisteredDevices();
-                    }
+                        @Override
+                        protected List<U2FDevice> getItems() {
+                            return model.getObject().getU2FRegisteredDevices();
+                        }
 
-                    @Override
-                    protected U2FDevice defaultItem() {
-                        return new U2FDevice();
-                    }
+                        @Override
+                        protected U2FDevice defaultItem() {
+                            return new U2FDevice();
+                        }
 
-                    @Override
-                    protected String sortProperty() {
-                        return "id";
-                    }
+                        @Override
+                        protected String sortProperty() {
+                            return "id";
+                        }
 
-                    @Override
-                    protected String paginatorRowsKey() {
-                        return AMConstants.PREF_AUTHPROFILE_U2FDEVICES_PAGINATOR_ROWS;
-                    }
+                        @Override
+                        protected String paginatorRowsKey() {
+                            return AMConstants.PREF_AUTHPROFILE_U2FDEVICES_PAGINATOR_ROWS;
+                        }
 
-                    @Override
-                    protected List<IColumn<U2FDevice, String>> getColumns() {
-                        List<IColumn<U2FDevice, String>> columns = new ArrayList<>();
-                        columns.add(new PropertyColumn<>(new ResourceModel("id"), "id", "id"));
-                        columns.add(new DatePropertyColumn<>(
+                        @Override
+                        protected List<IColumn<U2FDevice, String>> getColumns() {
+                            List<IColumn<U2FDevice, String>> columns = new ArrayList<>();
+                            columns.add(new PropertyColumn<>(new ResourceModel("id"), "id", "id"));
+                            columns.add(new DatePropertyColumn<>(
                                 new ResourceModel("issueDate"), "issueDate", "issueDate"));
-                        columns.add(new PropertyColumn<>(new ResourceModel("record"), "record", "record"));
-                        return columns;
-                    }
-                }, pageRef)));
+                            columns.add(new PropertyColumn<>(new ResourceModel("record"), "record", "record"));
+                            return columns;
+                        }
+                    }, pageRef)));
                 authProfileModal.header(new Model<>(getString("u2fRegisteredDevices", model)));
                 authProfileModal.show(true);
             }
         }, ActionLink.ActionType.FO_EDIT, AMEntitlement.AUTH_PROFILE_UPDATE);
 
-        panel.add(new ActionLink<AuthProfileTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -354,44 +356,46 @@
             public void onClick(final AjaxRequestTarget target, final AuthProfileTO ignore) {
                 model.setObject(AuthProfileRestClient.read(model.getObject().getKey()));
                 target.add(authProfileModal.setContent(new ModalDirectoryPanel<>(
-                        authProfileModal,
-                        new AuthProfileItemDirectoryPanel<WebAuthnDeviceCredential>(
-                                "panel", authProfileModal, model.getObject(), pageRef) {
+                    authProfileModal,
+                    new AuthProfileItemDirectoryPanel<WebAuthnDeviceCredential>(
+                        "panel", authProfileModal, model.getObject(), pageRef) {
 
-                    @Override
-                    protected List<WebAuthnDeviceCredential> getItems() {
-                        return model.getObject().getWebAuthnDeviceCredentials();
-                    }
+                        @Override
+                        protected List<WebAuthnDeviceCredential> getItems() {
+                            return model.getObject().getWebAuthnDeviceCredentials();
+                        }
 
-                    @Override
-                    protected WebAuthnDeviceCredential defaultItem() {
-                        return new WebAuthnDeviceCredential();
-                    }
+                        @Override
+                        protected WebAuthnDeviceCredential defaultItem() {
+                            return new WebAuthnDeviceCredential();
+                        }
 
-                    @Override
-                    protected String sortProperty() {
-                        return "identifier";
-                    }
+                        @Override
+                        protected String sortProperty() {
+                            return "identifier";
+                        }
 
-                    @Override
-                    protected String paginatorRowsKey() {
-                        return AMConstants.PREF_AUTHPROFILE_WEBAUTHNDEVICECREDENTIALS_PAGINATOR_ROWS;
-                    }
+                        @Override
+                        protected String paginatorRowsKey() {
+                            return AMConstants.PREF_AUTHPROFILE_WEBAUTHNDEVICECREDENTIALS_PAGINATOR_ROWS;
+                        }
 
-                    @Override
-                    protected List<IColumn<WebAuthnDeviceCredential, String>> getColumns() {
-                        List<IColumn<WebAuthnDeviceCredential, String>> columns = new ArrayList<>();
-                        columns.add(new PropertyColumn<>(new ResourceModel("identifier"), "identifier", "identifier"));
-                        columns.add(new PropertyColumn<>(new ResourceModel("json"), "json", "json"));
-                        return columns;
-                    }
-                }, pageRef)));
+                        @Override
+                        protected List<IColumn<WebAuthnDeviceCredential, String>> getColumns() {
+                            List<IColumn<WebAuthnDeviceCredential, String>> columns = new ArrayList<>();
+                            columns.add(new PropertyColumn<>(
+                                new ResourceModel("identifier"), "identifier", "identifier"));
+                            columns.add(new PropertyColumn<>(
+                                new ResourceModel("json"), "json", "json"));
+                            return columns;
+                        }
+                    }, pageRef)));
                 authProfileModal.header(new Model<>(getString("webAuthnDeviceCredentials", model)));
                 authProfileModal.show(true);
             }
         }, ActionLink.ActionType.HTML, AMEntitlement.AUTH_PROFILE_UPDATE);
 
-        panel.add(new ActionLink<AuthProfileTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/authprofiles/AuthProfileItemDirectoryPanel.java b/client/am/console/src/main/java/org/apache/syncope/client/console/authprofiles/AuthProfileItemDirectoryPanel.java
index 87d3951..5543a00 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/authprofiles/AuthProfileItemDirectoryPanel.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/authprofiles/AuthProfileItemDirectoryPanel.java
@@ -113,18 +113,18 @@
     public ActionsPanel<I> getActions(final IModel<I> model) {
         ActionsPanel<I> panel = super.getActions(model);
 
-        panel.add(new ActionLink<I>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final I ignore) {
                 send(AuthProfileItemDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(model.getObject(), target));
+                    new AjaxWizard.EditItemActionEvent<>(model.getObject(), target));
             }
         }, ActionLink.ActionType.EDIT, AMEntitlement.AUTH_PROFILE_UPDATE);
 
-        panel.add(new ActionLink<I>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel.java b/client/am/console/src/main/java/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel.java
index d3742ee..9cdc7e7 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/clientapps/ClientAppDirectoryPanel.java
@@ -116,19 +116,19 @@
     public ActionsPanel<T> getActions(final IModel<T> model) {
         ActionsPanel<T> panel = super.getActions(model);
 
-        panel.add(new ActionLink<T>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final ClientAppTO ignore) {
                 send(ClientAppDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(
-                                ClientAppRestClient.read(type, model.getObject().getKey()), target));
+                    new AjaxWizard.EditItemActionEvent<>(
+                        ClientAppRestClient.read(type, model.getObject().getKey()), target));
             }
         }, ActionLink.ActionType.EDIT, AMEntitlement.CLIENTAPP_UPDATE);
 
-        panel.add(new ActionLink<T>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -136,15 +136,15 @@
             public void onClick(final AjaxRequestTarget target, final ClientAppTO ignore) {
                 model.setObject(ClientAppRestClient.read(type, model.getObject().getKey()));
                 target.add(propertiesModal.setContent(new ModalDirectoryPanel<>(
-                        propertiesModal,
-                        new ClientAppPropertiesDirectoryPanel<>("panel", propertiesModal, type, model, pageRef),
-                        pageRef)));
+                    propertiesModal,
+                    new ClientAppPropertiesDirectoryPanel<>("panel", propertiesModal, type, model, pageRef),
+                    pageRef)));
                 propertiesModal.header(new Model<>(getString("properties.title", model)));
                 propertiesModal.show(true);
             }
         }, ActionLink.ActionType.TYPE_EXTENSIONS, AMEntitlement.CLIENTAPP_UPDATE);
 
-        panel.add(new ActionLink<T>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -154,11 +154,11 @@
                 clone.setKey(null);
                 clone.setClientAppId(null);
                 send(ClientAppDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(clone, target));
+                    new AjaxWizard.EditItemActionEvent<>(clone, target));
             }
         }, ActionLink.ActionType.CLONE, AMEntitlement.CLIENTAPP_CREATE);
 
-        panel.add(new ActionLink<T>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/clientapps/ClientAppModalPanelBuilder.java b/client/am/console/src/main/java/org/apache/syncope/client/console/clientapps/ClientAppModalPanelBuilder.java
index f6f522a..f0e06dc 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/clientapps/ClientAppModalPanelBuilder.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/clientapps/ClientAppModalPanelBuilder.java
@@ -70,36 +70,36 @@
 
     private static final long serialVersionUID = 5945391813567245081L;
 
-    private final IModel<Map<String, String>> accessPolicies = new LoadableDetachableModel<Map<String, String>>() {
+    private final IModel<Map<String, String>> accessPolicies = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = -2012833443695917883L;
 
         @Override
         protected Map<String, String> load() {
             return PolicyRestClient.list(PolicyType.ACCESS).stream().
-                    collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
+                collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
         }
     };
 
-    private final IModel<Map<String, String>> attrReleasePolicies = new LoadableDetachableModel<Map<String, String>>() {
+    private final IModel<Map<String, String>> attrReleasePolicies = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = -2012833443695917883L;
 
         @Override
         protected Map<String, String> load() {
             return PolicyRestClient.list(PolicyType.ATTR_RELEASE).stream().
-                    collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
+                collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
         }
     };
 
-    private final IModel<Map<String, String>> authPolicies = new LoadableDetachableModel<Map<String, String>>() {
+    private final IModel<Map<String, String>> authPolicies = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = -2012833443695917883L;
 
         @Override
         protected Map<String, String> load() {
             return PolicyRestClient.list(PolicyType.AUTH).stream().
-                    collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
+                collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
         }
     };
 
@@ -332,7 +332,7 @@
                 default:
             }
 
-            add(new ListView<Component>("fields", fields) {
+            add(new ListView<>("fields", fields) {
 
                 private static final long serialVersionUID = -9180479401817023838L;
 
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/clientapps/ClientAppPropertiesDirectoryPanel.java b/client/am/console/src/main/java/org/apache/syncope/client/console/clientapps/ClientAppPropertiesDirectoryPanel.java
index 3b05408..08eafb6 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/clientapps/ClientAppPropertiesDirectoryPanel.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/clientapps/ClientAppPropertiesDirectoryPanel.java
@@ -100,18 +100,18 @@
     protected ActionsPanel<Attr> getActions(final IModel<Attr> model) {
         ActionsPanel<Attr> panel = super.getActions(model);
 
-        panel.add(new ActionLink<Attr>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final Attr ignore) {
                 send(ClientAppPropertiesDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(model.getObject(), target));
+                    new AjaxWizard.EditItemActionEvent<>(model.getObject(), target));
             }
         }, ActionLink.ActionType.EDIT, AMEntitlement.CLIENTAPP_UPDATE);
 
-        panel.add(new ActionLink<Attr>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/clientapps/OIDCRPDirectoryPanel.java b/client/am/console/src/main/java/org/apache/syncope/client/console/clientapps/OIDCRPDirectoryPanel.java
index 09bb878..7a6ae15 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/clientapps/OIDCRPDirectoryPanel.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/clientapps/OIDCRPDirectoryPanel.java
@@ -52,7 +52,7 @@
         columns.add(new PropertyColumn<>(new StringResourceModel("clientId", this), "clientId", "clientId"));
         columns.add(new PropertyColumn<>(
                 new StringResourceModel("redirectUris", this), "redirectUris", "redirectUris"));
-        columns.add(new BooleanConditionColumn<OIDCRPClientAppTO>(new StringResourceModel("logout")) {
+        columns.add(new BooleanConditionColumn<>(new StringResourceModel("logout")) {
 
             @Override
             protected boolean isCondition(final IModel<OIDCRPClientAppTO> rowModel) {
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/commons/AMRealmPolicyProvider.java b/client/am/console/src/main/java/org/apache/syncope/client/console/commons/AMRealmPolicyProvider.java
index 46684c5..174d031 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/commons/AMRealmPolicyProvider.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/commons/AMRealmPolicyProvider.java
@@ -38,36 +38,36 @@
 
     private static final long serialVersionUID = 1671878489700L;
 
-    private final IModel<Map<String, String>> accessPolicies = new LoadableDetachableModel<Map<String, String>>() {
+    private final IModel<Map<String, String>> accessPolicies = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = -2012833443695917883L;
 
         @Override
         protected Map<String, String> load() {
             return PolicyRestClient.list(PolicyType.ACCESS).stream().
-                    collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
+                collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
         }
     };
 
-    private final IModel<Map<String, String>> attrReleasePolicies = new LoadableDetachableModel<Map<String, String>>() {
+    private final IModel<Map<String, String>> attrReleasePolicies = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = -2012833443695917883L;
 
         @Override
         protected Map<String, String> load() {
             return PolicyRestClient.list(PolicyType.ATTR_RELEASE).stream().
-                    collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
+                collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
         }
     };
 
-    private final IModel<Map<String, String>> authPolicies = new LoadableDetachableModel<Map<String, String>>() {
+    private final IModel<Map<String, String>> authPolicies = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = -2012833443695917883L;
 
         @Override
         protected Map<String, String> load() {
             return PolicyRestClient.list(PolicyType.AUTH).stream().
-                    collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
+                collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
         }
     };
 
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/AMSessionDirectoryPanel.java b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/AMSessionDirectoryPanel.java
index 74ef526..9ad20da 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/AMSessionDirectoryPanel.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/AMSessionDirectoryPanel.java
@@ -115,7 +115,7 @@
     protected ActionsPanel<AMSession> getActions(final IModel<AMSession> model) {
         ActionsPanel<AMSession> panel = super.getActions(model);
 
-        panel.add(new ActionLink<AMSession>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = 22687128346032L;
 
@@ -123,12 +123,12 @@
             public void onClick(final AjaxRequestTarget target, final AMSession ignore) {
                 viewModal.header(new ResourceModel("details"));
                 target.add(viewModal.setContent(
-                        new JsonEditorPanel(viewModal, Model.of(model.getObject().getJson()), true, pageRef)));
+                    new JsonEditorPanel(viewModal, Model.of(model.getObject().getJson()), true, pageRef)));
                 viewModal.show(true);
             }
         }, ActionLink.ActionType.VIEW, listEntitlement);
 
-        panel.add(new ActionLink<AMSession>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -4608353559809323466L;
 
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/AuthModuleDirectoryPanel.java b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/AuthModuleDirectoryPanel.java
index 5cb21fe..20512ed 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/AuthModuleDirectoryPanel.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/AuthModuleDirectoryPanel.java
@@ -94,20 +94,20 @@
                 Constants.KEY_FIELD_NAME, Constants.KEY_FIELD_NAME));
         columns.add(new PropertyColumn<>(new ResourceModel(Constants.DESCRIPTION_FIELD_NAME),
                 Constants.DESCRIPTION_FIELD_NAME, Constants.DESCRIPTION_FIELD_NAME));
-        columns.add(new PropertyColumn<AuthModuleTO, String>(new ResourceModel("type"), "conf") {
+        columns.add(new PropertyColumn<>(new ResourceModel("type"), "conf") {
 
             private static final long serialVersionUID = -1822504503325964706L;
 
             @Override
             public void populateItem(
-                    final Item<ICellPopulator<AuthModuleTO>> item,
-                    final String componentId,
-                    final IModel<AuthModuleTO> rowModel) {
+                final Item<ICellPopulator<AuthModuleTO>> item,
+                final String componentId,
+                final IModel<AuthModuleTO> rowModel) {
 
                 item.add(new Label(componentId, rowModel.getObject().getConf() == null
-                        ? StringUtils.EMPTY
-                        : StringUtils.substringBefore(
-                                rowModel.getObject().getConf().getClass().getSimpleName(), "AuthModuleConf")));
+                    ? StringUtils.EMPTY
+                    : StringUtils.substringBefore(
+                    rowModel.getObject().getConf().getClass().getSimpleName(), "AuthModuleConf")));
             }
         });
         return columns;
@@ -117,18 +117,18 @@
     public ActionsPanel<AuthModuleTO> getActions(final IModel<AuthModuleTO> model) {
         ActionsPanel<AuthModuleTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<AuthModuleTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final AuthModuleTO ignore) {
                 send(AuthModuleDirectoryPanel.this, Broadcast.EXACT, new AjaxWizard.EditItemActionEvent<>(
-                        AuthModuleRestClient.read(model.getObject().getKey()), target));
+                    AuthModuleRestClient.read(model.getObject().getKey()), target));
             }
         }, ActionLink.ActionType.EDIT, AMEntitlement.AUTH_MODULE_UPDATE);
 
-        panel.add(new ActionLink<AuthModuleTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/OIDC.java b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/OIDC.java
index ab04dda..0c5a9b7 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/OIDC.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/OIDC.java
@@ -50,7 +50,7 @@
 
     private static final ObjectMapper MAPPER = new ObjectMapper();
 
-    private final BaseModal<String> viewModal = new BaseModal<String>("viewModal") {
+    private final BaseModal<String> viewModal = new BaseModal<>("viewModal") {
 
         private static final long serialVersionUID = 389935548143327858L;
 
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SAML2IdPEntityDirectoryPanel.java b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SAML2IdPEntityDirectoryPanel.java
index a870a68..9523053 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SAML2IdPEntityDirectoryPanel.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SAML2IdPEntityDirectoryPanel.java
@@ -84,18 +84,18 @@
         columns.add(new PropertyColumn<>(
                 new StringResourceModel(Constants.KEY_FIELD_NAME, this),
                 Constants.KEY_FIELD_NAME, Constants.KEY_FIELD_NAME));
-        columns.add(new AbstractColumn<SAML2IdPEntityTO, String>(Model.of("URL")) {
+        columns.add(new AbstractColumn<>(Model.of("URL")) {
 
             @Override
             public void populateItem(
-                    final Item<ICellPopulator<SAML2IdPEntityTO>> cellItem,
-                    final String componentId,
-                    final IModel<SAML2IdPEntityTO> rowModel) {
+                final Item<ICellPopulator<SAML2IdPEntityTO>> cellItem,
+                final String componentId,
+                final IModel<SAML2IdPEntityTO> rowModel) {
 
                 cellItem.add(new ExternalLink(
-                        componentId,
-                        Model.of(metadataURL),
-                        Model.of(metadataURL)) {
+                    componentId,
+                    Model.of(metadataURL),
+                    Model.of(metadataURL)) {
 
                     @Override
                     protected void onComponentTag(final ComponentTag tag) {
@@ -118,15 +118,15 @@
     protected ActionsPanel<SAML2IdPEntityTO> getActions(final IModel<SAML2IdPEntityTO> model) {
         ActionsPanel<SAML2IdPEntityTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<SAML2IdPEntityTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final SAML2IdPEntityTO ignore) {
                 send(SAML2IdPEntityDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(
-                                SAML2IdPEntityRestClient.get(model.getObject().getKey()), target));
+                    new AjaxWizard.EditItemActionEvent<>(
+                        SAML2IdPEntityRestClient.get(model.getObject().getKey()), target));
             }
         }, ActionLink.ActionType.EDIT, AMEntitlement.SAML2_IDP_ENTITY_SET);
 
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SAML2SPEntityDirectoryPanel.java b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SAML2SPEntityDirectoryPanel.java
index 8a67cd2..faafbfc 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SAML2SPEntityDirectoryPanel.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SAML2SPEntityDirectoryPanel.java
@@ -92,19 +92,19 @@
                 new StringResourceModel(Constants.KEY_FIELD_NAME, this),
                 Constants.KEY_FIELD_NAME, Constants.KEY_FIELD_NAME));
 
-        columns.add(new AbstractColumn<SAML2SPEntityTO, String>(Model.of("URL")) {
+        columns.add(new AbstractColumn<>(Model.of("URL")) {
 
             @Override
             public void populateItem(
-                    final Item<ICellPopulator<SAML2SPEntityTO>> cellItem,
-                    final String componentId,
-                    final IModel<SAML2SPEntityTO> rowModel) {
+                final Item<ICellPopulator<SAML2SPEntityTO>> cellItem,
+                final String componentId,
+                final IModel<SAML2SPEntityTO> rowModel) {
 
                 String metadataURL = waPrefix + "/sp/" + rowModel.getObject().getKey() + "/metadata";
                 cellItem.add(new ExternalLink(
-                        componentId,
-                        Model.of(metadataURL),
-                        Model.of(metadataURL)) {
+                    componentId,
+                    Model.of(metadataURL),
+                    Model.of(metadataURL)) {
 
                     @Override
                     protected void onComponentTag(final ComponentTag tag) {
@@ -127,19 +127,19 @@
     protected ActionsPanel<SAML2SPEntityTO> getActions(final IModel<SAML2SPEntityTO> model) {
         ActionsPanel<SAML2SPEntityTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<SAML2SPEntityTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final SAML2SPEntityTO ignore) {
                 send(SAML2SPEntityDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(
-                                SAML2SPEntityRestClient.get(model.getObject().getKey()), target));
+                    new AjaxWizard.EditItemActionEvent<>(
+                        SAML2SPEntityRestClient.get(model.getObject().getKey()), target));
             }
         }, ActionLink.ActionType.EDIT, AMEntitlement.SAML2_SP_ENTITY_SET);
 
-        panel.add(new ActionLink<SAML2SPEntityTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SRARouteDirectoryPanel.java b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SRARouteDirectoryPanel.java
index 2357cb1..b8f73fc 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SRARouteDirectoryPanel.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SRARouteDirectoryPanel.java
@@ -93,19 +93,19 @@
     protected ActionsPanel<SRARouteTO> getActions(final IModel<SRARouteTO> model) {
         ActionsPanel<SRARouteTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<SRARouteTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -4608353559809323466L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final SRARouteTO ignore) {
                 send(SRARouteDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(
-                                SRARouteRestClient.read(model.getObject().getKey()), target));
+                    new AjaxWizard.EditItemActionEvent<>(
+                        SRARouteRestClient.read(model.getObject().getKey()), target));
             }
         }, ActionLink.ActionType.EDIT, AMEntitlement.SRA_ROUTE_UPDATE);
 
-        panel.add(new ActionLink<SRARouteTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -4608353559809323466L;
 
@@ -114,11 +114,11 @@
                 SRARouteTO clone = SerializationUtils.clone(model.getObject());
                 clone.setKey(null);
                 send(SRARouteDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(clone, target));
+                    new AjaxWizard.EditItemActionEvent<>(clone, target));
             }
         }, ActionLink.ActionType.CLONE, AMEntitlement.SRA_ROUTE_CREATE);
 
-        panel.add(new ActionLink<SRARouteTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -4608353559809323466L;
 
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SRARouteFilterPanel.java b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SRARouteFilterPanel.java
index 8500910..d072eb6 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SRARouteFilterPanel.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SRARouteFilterPanel.java
@@ -66,7 +66,7 @@
             }
         }));
 
-        ListView<SRARouteFilter> filters = new ListView<SRARouteFilter>("filters", model) {
+        ListView<SRARouteFilter> filters = new ListView<>("filters", model) {
 
             private static final long serialVersionUID = 6741044372185745296L;
 
@@ -75,16 +75,16 @@
                 SRARouteFilter filter = item.getModelObject();
 
                 AjaxDropDownChoicePanel<SRARouteFilterFactory> factory =
-                        new AjaxDropDownChoicePanel<>("factory", "factory", new PropertyModel<>(filter, "factory"));
+                    new AjaxDropDownChoicePanel<>("factory", "factory", new PropertyModel<>(filter, "factory"));
                 factory.setChoices(List.of(SRARouteFilterFactory.values()));
                 item.add(factory.hideLabel());
 
                 AjaxTextFieldPanel args =
-                        new AjaxTextFieldPanel("args", "args", new PropertyModel<>(filter, "args"));
+                    new AjaxTextFieldPanel("args", "args", new PropertyModel<>(filter, "args"));
                 item.add(args.hideLabel());
 
                 ActionsPanel<Serializable> actions = new ActionsPanel<>("actions", null);
-                actions.add(new ActionLink<Serializable>() {
+                actions.add(new ActionLink<>() {
 
                     private static final long serialVersionUID = 2041211756396714619L;
 
@@ -98,7 +98,7 @@
                 }, ActionLink.ActionType.DELETE, StringUtils.EMPTY, true).hideLabel();
                 if (model.getObject().size() > 1) {
                     if (item.getIndex() > 0) {
-                        actions.add(new ActionLink<Serializable>() {
+                        actions.add(new ActionLink<>() {
 
                             private static final long serialVersionUID = 2041211756396714619L;
 
@@ -114,7 +114,7 @@
                         }, ActionLink.ActionType.UP, StringUtils.EMPTY).hideLabel();
                     }
                     if (item.getIndex() < model.getObject().size() - 1) {
-                        actions.add(new ActionLink<Serializable>() {
+                        actions.add(new ActionLink<>() {
 
                             private static final long serialVersionUID = 2041211756396714619L;
 
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SRARoutePredicatePanel.java b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SRARoutePredicatePanel.java
index e81fa5b..db542e0 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SRARoutePredicatePanel.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SRARoutePredicatePanel.java
@@ -68,7 +68,7 @@
             }
         }));
 
-        ListView<SRARoutePredicate> predicates = new ListView<SRARoutePredicate>("predicates", model) {
+        ListView<SRARoutePredicate> predicates = new ListView<>("predicates", model) {
 
             private static final long serialVersionUID = 1814616131938968887L;
 
@@ -77,25 +77,25 @@
                 SRARoutePredicate predicate = item.getModelObject();
 
                 AjaxCheckBoxPanel negate =
-                        new AjaxCheckBoxPanel("negate", "negate", new PropertyModel<>(predicate, "negate"));
+                    new AjaxCheckBoxPanel("negate", "negate", new PropertyModel<>(predicate, "negate"));
                 item.add(negate.hideLabel());
 
                 AjaxDropDownChoicePanel<SRARoutePredicateFactory> factory =
-                        new AjaxDropDownChoicePanel<>("factory", "factory", new PropertyModel<>(predicate, "factory"));
+                    new AjaxDropDownChoicePanel<>("factory", "factory", new PropertyModel<>(predicate, "factory"));
                 factory.setChoices(List.of(SRARoutePredicateFactory.values()));
                 item.add(factory.hideLabel());
 
                 AjaxTextFieldPanel args =
-                        new AjaxTextFieldPanel("args", "args", new PropertyModel<>(predicate, "args"));
+                    new AjaxTextFieldPanel("args", "args", new PropertyModel<>(predicate, "args"));
                 item.add(args.hideLabel());
 
                 AjaxDropDownChoicePanel<SRARoutePredicateCond> cond =
-                        new AjaxDropDownChoicePanel<>("cond", "cond", new PropertyModel<>(predicate, "cond"));
+                    new AjaxDropDownChoicePanel<>("cond", "cond", new PropertyModel<>(predicate, "cond"));
                 cond.setChoices(List.of(SRARoutePredicateCond.values()));
                 item.add(cond.hideLabel());
 
                 ActionsPanel<Serializable> actions = new ActionsPanel<>("actions", null);
-                actions.add(new ActionLink<Serializable>() {
+                actions.add(new ActionLink<>() {
 
                     private static final long serialVersionUID = -3722207913631435501L;
 
@@ -109,7 +109,7 @@
                 }, ActionLink.ActionType.DELETE, StringUtils.EMPTY, true).hideLabel();
                 if (model.getObject().size() > 1) {
                     if (item.getIndex() > 0) {
-                        actions.add(new ActionLink<Serializable>() {
+                        actions.add(new ActionLink<>() {
 
                             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -125,7 +125,7 @@
                         }, ActionLink.ActionType.UP, StringUtils.EMPTY).hideLabel();
                     }
                     if (item.getIndex() < model.getObject().size() - 1) {
-                        actions.add(new ActionLink<Serializable>() {
+                        actions.add(new ActionLink<>() {
 
                             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SRARouteWizardBuilder.java b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SRARouteWizardBuilder.java
index be3c6ac..96230f6 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SRARouteWizardBuilder.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SRARouteWizardBuilder.java
@@ -76,7 +76,7 @@
                     new PropertyModel<>(route, Constants.NAME_FIELD_NAME), false).
                     addRequiredLabel().setEnabled(true));
 
-            AjaxTextFieldPanel target = new AjaxTextFieldPanel("target", "target", new IModel<String>() {
+            AjaxTextFieldPanel target = new AjaxTextFieldPanel("target", "target", new IModel<>() {
 
                 private static final long serialVersionUID = 1015030402166681242L;
 
@@ -98,7 +98,7 @@
             target.getField().add(new UrlValidator(new String[] { "http", "https" }));
             add(target);
 
-            AjaxTextFieldPanel error = new AjaxTextFieldPanel("error", "error", new IModel<String>() {
+            AjaxTextFieldPanel error = new AjaxTextFieldPanel("error", "error", new IModel<>() {
 
                 private static final long serialVersionUID = 1015030402166681242L;
 
@@ -127,7 +127,7 @@
 
             add(new AjaxCheckBoxPanel("logout", "logout", new PropertyModel<>(route, "logout")));
 
-            AjaxTextFieldPanel postLogout = new AjaxTextFieldPanel("postLogout", "postLogout", new IModel<String>() {
+            AjaxTextFieldPanel postLogout = new AjaxTextFieldPanel("postLogout", "postLogout", new IModel<>() {
 
                 private static final long serialVersionUID = 1015030402166681242L;
 
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SRAStatisticsPanel.java b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SRAStatisticsPanel.java
index c8467fb..5709553 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SRAStatisticsPanel.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/SRAStatisticsPanel.java
@@ -57,14 +57,14 @@
     private final List<Pair<String, String>> selected = new ArrayList<>();
 
     private final LoadableDetachableModel<Map<String, String>> routes =
-            new LoadableDetachableModel<Map<String, String>>() {
+        new LoadableDetachableModel<>() {
 
-        @Override
-        protected Map<String, String> load() {
-            return SRARouteRestClient.list().stream().
+            @Override
+            protected Map<String, String> load() {
+                return SRARouteRestClient.list().stream().
                     collect(Collectors.toMap(SRARouteTO::getKey, SRARouteTO::getName));
-        }
-    };
+            }
+        };
 
     private int current;
 
@@ -91,7 +91,7 @@
             protected void populateItem(final ListItem<SRAStatistics.Tag> tag) {
                 String btnCss = next().cssClassName();
                 tag.add(new Label("label", tag.getModelObject().getTag()));
-                tag.add(new ListView<String>("tag", tag.getModelObject().getValues()) {
+                tag.add(new ListView<>("tag", tag.getModelObject().getValues()) {
 
                     @Override
                     protected void populateItem(final ListItem<String> value) {
@@ -100,7 +100,7 @@
                             @Override
                             public void onClick(final AjaxRequestTarget target) {
                                 Pair<String, String> selection =
-                                        Pair.of(tag.getModelObject().getTag(), value.getModelObject());
+                                    Pair.of(tag.getModelObject().getTag(), value.getModelObject());
                                 if (selected.contains(selection)) {
                                     selected.remove(selection);
                                 } else {
@@ -126,8 +126,8 @@
                         };
 
                         IModel<String> valueLabel = routes.getObject().containsKey(value.getModelObject())
-                                ? Model.of(routes.getObject().get(value.getModelObject()))
-                                : value.getModel();
+                            ? Model.of(routes.getObject().get(value.getModelObject()))
+                            : value.getModel();
                         valueLink.add(new Label("valueLabel", valueLabel));
                         value.add(valueLink);
                     }
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/WAConfigDirectoryPanel.java b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/WAConfigDirectoryPanel.java
index 8fc4c9f..9dfc8d7 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/panels/WAConfigDirectoryPanel.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/panels/WAConfigDirectoryPanel.java
@@ -70,7 +70,7 @@
     public ActionsPanel<Attr> getActions(final IModel<Attr> model) {
         ActionsPanel<Attr> panel = super.getActions(model);
 
-        panel.add(new ActionLink<Attr>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -83,7 +83,7 @@
             }
         }, ActionLink.ActionType.EDIT, AMEntitlement.WA_CONFIG_SET);
 
-        panel.add(new ActionLink<Attr>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/policies/AccessPolicyDirectoryPanel.java b/client/am/console/src/main/java/org/apache/syncope/client/console/policies/AccessPolicyDirectoryPanel.java
index 35cd4ca..4bb4920 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/policies/AccessPolicyDirectoryPanel.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/policies/AccessPolicyDirectoryPanel.java
@@ -62,7 +62,7 @@
 
     @Override
     protected void addCustomActions(final ActionsPanel<AccessPolicyTO> panel, final IModel<AccessPolicyTO> model) {
-        panel.add(new ActionLink<AccessPolicyTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -73,9 +73,9 @@
                     model.getObject().setConf(new DefaultAccessPolicyConf());
                 }
                 target.add(ruleCompositionModal.setContent(new ModalDirectoryPanel<>(
-                        ruleCompositionModal,
-                        new AccessPolicyRequiredAttrsDirectoryPanel("panel", ruleCompositionModal, model, pageRef),
-                        pageRef)));
+                    ruleCompositionModal,
+                    new AccessPolicyRequiredAttrsDirectoryPanel("panel", ruleCompositionModal, model, pageRef),
+                    pageRef)));
                 ruleCompositionModal.header(new Model<>(getString("requiredAttrs.title", model)));
                 ruleCompositionModal.show(true);
             }
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/policies/AttrReleasePolicyDirectoryPanel.java b/client/am/console/src/main/java/org/apache/syncope/client/console/policies/AttrReleasePolicyDirectoryPanel.java
index b1ca139..206a74b 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/policies/AttrReleasePolicyDirectoryPanel.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/policies/AttrReleasePolicyDirectoryPanel.java
@@ -52,7 +52,7 @@
             final ActionsPanel<AttrReleasePolicyTO> panel,
             final IModel<AttrReleasePolicyTO> model) {
 
-        panel.add(new ActionLink<AttrReleasePolicyTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -63,7 +63,7 @@
                     model.getObject().setConf(new DefaultAttrReleasePolicyConf());
                 }
                 target.add(policySpecModal.setContent(
-                        new AttrReleasePolicyModalPanel(policySpecModal, model, pageRef)));
+                    new AttrReleasePolicyModalPanel(policySpecModal, model, pageRef)));
                 policySpecModal.header(new Model<>(getString("attrReleasePolicyConf.title", model)));
                 policySpecModal.show(true);
             }
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/policies/AuthPolicyDirectoryPanel.java b/client/am/console/src/main/java/org/apache/syncope/client/console/policies/AuthPolicyDirectoryPanel.java
index b0b493b..99a6902 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/policies/AuthPolicyDirectoryPanel.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/policies/AuthPolicyDirectoryPanel.java
@@ -50,7 +50,7 @@
     @Override
     protected void addCustomActions(final ActionsPanel<AuthPolicyTO> panel, final IModel<AuthPolicyTO> model) {
 
-        panel.add(new ActionLink<AuthPolicyTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -61,7 +61,7 @@
                     model.getObject().setConf(new DefaultAuthPolicyConf());
                 }
                 target.add(policySpecModal.setContent(
-                        new AuthPolicyModalPanel(policySpecModal, model, pageRef)));
+                    new AuthPolicyModalPanel(policySpecModal, model, pageRef)));
                 policySpecModal.header(new Model<>(getString("authPolicyConf.title", model)));
                 policySpecModal.show(true);
             }
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/policies/AuthPolicyModalPanel.java b/client/am/console/src/main/java/org/apache/syncope/client/console/policies/AuthPolicyModalPanel.java
index ad50eb4..98ffa46 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/policies/AuthPolicyModalPanel.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/policies/AuthPolicyModalPanel.java
@@ -42,7 +42,7 @@
 
     private static final long serialVersionUID = 1L;
 
-    private final IModel<List<String>> allAuthModules = new LoadableDetachableModel<List<String>>() {
+    private final IModel<List<String>> allAuthModules = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = -2012833443695917883L;
 
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/rest/SRASessionRestClient.java b/client/am/console/src/main/java/org/apache/syncope/client/console/rest/SRASessionRestClient.java
index e661531..a45aa58 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/rest/SRASessionRestClient.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/rest/SRASessionRestClient.java
@@ -53,7 +53,7 @@
 
             Response response = client.get();
             if (response.getStatus() == Response.Status.OK.getStatusCode()) {
-                return response.readEntity(new GenericType<List<AMSession>>() {
+                return response.readEntity(new GenericType<>() {
                 });
             }
 
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/rest/WASessionRestClient.java b/client/am/console/src/main/java/org/apache/syncope/client/console/rest/WASessionRestClient.java
index 474d6ac..fd166c4 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/rest/WASessionRestClient.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/rest/WASessionRestClient.java
@@ -67,8 +67,8 @@
                 JsonNode node = MAPPER.readTree((InputStream) response.getEntity());
                 if (node.has("activeSsoSessions")) {
                     return MAPPER.readValue(MAPPER.treeAsTokens(node.get("activeSsoSessions")),
-                            new TypeReference<List<AMSession>>() {
-                    });
+                        new TypeReference<>() {
+                        });
                 }
             } else {
                 LOG.error("Unexpected response for SSO Sessions from {}: {}",
diff --git a/client/am/console/src/main/java/org/apache/syncope/client/console/wizards/AuthModuleWizardBuilder.java b/client/am/console/src/main/java/org/apache/syncope/client/console/wizards/AuthModuleWizardBuilder.java
index 8aeb245..5b7e433 100644
--- a/client/am/console/src/main/java/org/apache/syncope/client/console/wizards/AuthModuleWizardBuilder.java
+++ b/client/am/console/src/main/java/org/apache/syncope/client/console/wizards/AuthModuleWizardBuilder.java
@@ -52,14 +52,14 @@
 
         super(defaultItem, pageRef);
 
-        authModuleConfs = new LoadableDetachableModel<List<String>>() {
+        authModuleConfs = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
             @Override
             protected List<String> load() {
                 return SyncopeWebApplication.get().getLookup().getClasses(AuthModuleConf.class).stream().
-                        map(Class::getName).sorted().collect(Collectors.toList());
+                    map(Class::getName).sorted().collect(Collectors.toList());
             }
         };
     }
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMAnyDirectoryPanelAdditionalActionLinksProvider.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMAnyDirectoryPanelAdditionalActionLinksProvider.java
index a9a476a..9ae3516 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMAnyDirectoryPanelAdditionalActionLinksProvider.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMAnyDirectoryPanelAdditionalActionLinksProvider.java
@@ -61,22 +61,22 @@
 
         List<Action<UserTO>> actions = new ArrayList<>();
 
-        Action<UserTO> enable = new Action<>(new ActionLink<UserTO>() {
+        Action<UserTO> enable = new Action<>(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final UserTO ignore) {
                 IModel<AnyWrapper<UserTO>> formModel = new CompoundPropertyModel<>(
-                        new AnyWrapper<>(model.getObject()));
+                    new AnyWrapper<>(model.getObject()));
                 modal.setFormModel(formModel);
 
                 target.add(modal.setContent(new AnyStatusModal<>(
-                        modal,
-                        pageRef,
-                        formModel.getObject().getInnerObject(),
-                        "resource",
-                        true)));
+                    modal,
+                    pageRef,
+                    formModel.getObject().getInnerObject(),
+                    "resource",
+                    true)));
 
                 modal.header(new Model<>(header));
 
@@ -88,7 +88,7 @@
         enable.setRealms(realm, model.getObject().getDynRealms());
         actions.add(enable);
 
-        Action<UserTO> manageResources = new Action<>(new ActionLink<UserTO>() {
+        Action<UserTO> manageResources = new Action<>(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
@@ -96,15 +96,15 @@
             public void onClick(final AjaxRequestTarget target, final UserTO ignore) {
                 model.setObject(new UserRestClient().read(model.getObject().getKey()));
                 IModel<AnyWrapper<UserTO>> formModel = new CompoundPropertyModel<>(
-                        new AnyWrapper<>(model.getObject()));
+                    new AnyWrapper<>(model.getObject()));
                 modal.setFormModel(formModel);
 
                 target.add(modal.setContent(new AnyStatusModal<>(
-                        modal,
-                        pageRef,
-                        formModel.getObject().getInnerObject(),
-                        "resource",
-                        false)));
+                    modal,
+                    pageRef,
+                    formModel.getObject().getInnerObject(),
+                    "resource",
+                    false)));
 
                 modal.header(new Model<>(header));
 
@@ -117,7 +117,7 @@
         manageResources.setRealms(realm, model.getObject().getDynRealms());
         actions.add(manageResources);
 
-        Action<UserTO> manageAccounts = new Action<>(new ActionLink<UserTO>() {
+        Action<UserTO> manageAccounts = new Action<>(new ActionLink<>() {
 
             private static final long serialVersionUID = 8011039414597736111L;
 
@@ -138,7 +138,7 @@
         manageAccounts.setRealms(realm, model.getObject().getDynRealms());
         actions.add(manageAccounts);
 
-        Action<UserTO> mergeAccounts = new Action<>(new ActionLink<UserTO>() {
+        Action<UserTO> mergeAccounts = new Action<>(new ActionLink<>() {
 
             private static final long serialVersionUID = 8011039414597736111L;
 
@@ -146,7 +146,7 @@
             public void onClick(final AjaxRequestTarget target, final UserTO ignore) {
                 model.setObject(new UserRestClient().read(model.getObject().getKey()));
                 MergeLinkedAccountsWizardBuilder builder =
-                        new MergeLinkedAccountsWizardBuilder(model, pageRef, parentPanel, modal);
+                    new MergeLinkedAccountsWizardBuilder(model, pageRef, parentPanel, modal);
                 builder.setEventSink(builder);
                 target.add(modal.setContent(builder.build(BaseModal.CONTENT_ID, AjaxWizard.Mode.CREATE)));
                 modal.header(new StringResourceModel("mergeLinkedAccounts.title", model));
@@ -172,22 +172,22 @@
 
         List<Action<GroupTO>> actions = new ArrayList<>();
 
-        Action<GroupTO> manageResources = new Action<>(new ActionLink<GroupTO>() {
+        Action<GroupTO> manageResources = new Action<>(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770645L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final GroupTO ignore) {
                 IModel<AnyWrapper<GroupTO>> formModel = new CompoundPropertyModel<>(
-                        new AnyWrapper<>(modelObject));
+                    new AnyWrapper<>(modelObject));
                 modal.setFormModel(formModel);
 
                 target.add(modal.setContent(new AnyStatusModal<>(
-                        modal,
-                        pageRef,
-                        formModel.getObject().getInnerObject(),
-                        "resource",
-                        false)));
+                    modal,
+                    pageRef,
+                    formModel.getObject().getInnerObject(),
+                    "resource",
+                    false)));
 
                 modal.header(new Model<>(header));
 
@@ -215,22 +215,22 @@
 
         List<Action<AnyObjectTO>> actions = new ArrayList<>();
 
-        Action<AnyObjectTO> manageResources = new Action<>(new ActionLink<AnyObjectTO>() {
+        Action<AnyObjectTO> manageResources = new Action<>(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770645L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final AnyObjectTO ignore) {
                 final IModel<AnyWrapper<AnyObjectTO>> formModel = new CompoundPropertyModel<>(
-                        new AnyWrapper<>(modelObject));
+                    new AnyWrapper<>(modelObject));
                 modal.setFormModel(formModel);
 
                 target.add(modal.setContent(new AnyStatusModal<>(
-                        modal,
-                        pageRef,
-                        formModel.getObject().getInnerObject(),
-                        "resource",
-                        false)));
+                    modal,
+                    pageRef,
+                    formModel.getObject().getInnerObject(),
+                    "resource",
+                    false)));
 
                 modal.header(new Model<>(header));
 
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMAnyDirectoryPanelAdditionalActionsProvider.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMAnyDirectoryPanelAdditionalActionsProvider.java
index 588bee6..32d2ebf 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMAnyDirectoryPanelAdditionalActionsProvider.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMAnyDirectoryPanelAdditionalActionsProvider.java
@@ -84,15 +84,15 @@
             public void onEvent(final IEvent<?> event) {
                 if (event.getPayload() instanceof AjaxWizard.NewItemCancelEvent) {
                     ((AjaxWizard.NewItemCancelEvent<?>) event.getPayload()).getTarget().
-                            ifPresent(target -> modal.close(target));
+                            ifPresent(modal::close);
                 } else if (event.getPayload() instanceof AjaxWizard.NewItemFinishEvent) {
                     AjaxWizard.NewItemFinishEvent<?> payload = (AjaxWizard.NewItemFinishEvent) event.getPayload();
                     Optional<AjaxRequestTarget> target = payload.getTarget();
 
                     if (payload.getResult() instanceof ArrayList) {
-                        modal.setContent(new ResultPage<Serializable>(
-                                null,
-                                payload.getResult()) {
+                        modal.setContent(new ResultPage<>(
+                            null,
+                            payload.getResult()) {
 
                             private static final long serialVersionUID = -2630573849050255233L;
 
@@ -103,7 +103,7 @@
 
                             @Override
                             protected Panel customResultBody(
-                                    final String id, final Serializable item, final Serializable result) {
+                                final String id, final Serializable item, final Serializable result) {
 
                                 @SuppressWarnings("unchecked")
                                 ArrayList<ProvisioningReport> reports = (ArrayList<ProvisioningReport>) result;
@@ -131,7 +131,7 @@
         };
         csvEventSink.add(csvDownloadBehavior);
         panel.addOuterObject(csvEventSink);
-        csvPushLink = new AjaxLink<Void>("csvPush") {
+        csvPushLink = new AjaxLink<>("csvPush") {
 
             private static final long serialVersionUID = -817438685948164787L;
 
@@ -141,8 +141,8 @@
                 AnyQuery query = csvAnyQuery(realm, fiql, rows, panel.getDataProvider());
 
                 target.add(modal.setContent(new CSVPushWizardBuilder(spec, query, csvDownloadBehavior, pageRef).
-                        setEventSink(csvEventSink).
-                        build(BaseModal.CONTENT_ID, AjaxWizard.Mode.EDIT)));
+                    setEventSink(csvEventSink).
+                    build(BaseModal.CONTENT_ID, AjaxWizard.Mode.EDIT)));
 
                 modal.header(new StringResourceModel("csvPush", panel, Model.of(spec)));
                 modal.show(true);
@@ -152,7 +152,7 @@
         MetaDataRoleAuthorizationStrategy.authorize(csvPushLink, Component.RENDER,
                 String.format("%s,%s", IdRepoEntitlement.IMPLEMENTATION_LIST, IdRepoEntitlement.TASK_EXECUTE));
         panel.addInnerObject(csvPushLink.setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true));
-        csvPullLink = new AjaxLink<Void>("csvPull") {
+        csvPullLink = new AjaxLink<>("csvPull") {
 
             private static final long serialVersionUID = -817438685948164787L;
 
@@ -161,8 +161,8 @@
                 CSVPullSpec spec = csvPullSpec(type, realm);
 
                 target.add(modal.setContent(new CSVPullWizardBuilder(spec, pageRef).
-                        setEventSink(csvEventSink).
-                        build(BaseModal.CONTENT_ID, AjaxWizard.Mode.EDIT)));
+                    setEventSink(csvEventSink).
+                    build(BaseModal.CONTENT_ID, AjaxWizard.Mode.EDIT)));
 
                 modal.header(new StringResourceModel("csvPull", panel, Model.of(spec)));
                 modal.show(true);
@@ -186,10 +186,10 @@
                 collect(Collectors.toList()));
         spec.setPlainAttrs(PreferenceManager.getList(
                 DisplayAttributesModalPanel.getPrefPlainAttributeView(type)).
-                stream().filter(name -> pSchemaNames.contains(name)).collect(Collectors.toList()));
+                stream().filter(pSchemaNames::contains).collect(Collectors.toList()));
         spec.setDerAttrs(PreferenceManager.getList(
                 DisplayAttributesModalPanel.getPrefPlainAttributeView(type)).
-                stream().filter(name -> dSchemaNames.contains(name)).collect(Collectors.toList()));
+                stream().filter(dSchemaNames::contains).collect(Collectors.toList()));
         return spec;
     }
 
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMImplementationInfoProvider.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMImplementationInfoProvider.java
index 0337aaa..fa15b29 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMImplementationInfoProvider.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMImplementationInfoProvider.java
@@ -131,42 +131,42 @@
 
     @Override
     public IModel<List<String>> getReconFilterBuilders() {
-        return new LoadableDetachableModel<List<String>>() {
+        return new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
             @Override
             protected List<String> load() {
                 return ImplementationRestClient.list(IdMImplementationType.RECON_FILTER_BUILDER).stream().
-                        map(EntityTO::getKey).sorted().collect(Collectors.toList());
+                    map(EntityTO::getKey).sorted().collect(Collectors.toList());
             }
         };
     }
 
     @Override
     public IModel<List<String>> getPullActions() {
-        return new LoadableDetachableModel<List<String>>() {
+        return new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
             @Override
             protected List<String> load() {
                 return ImplementationRestClient.list(IdMImplementationType.PULL_ACTIONS).stream().
-                        map(EntityTO::getKey).sorted().collect(Collectors.toList());
+                    map(EntityTO::getKey).sorted().collect(Collectors.toList());
             }
         };
     }
 
     @Override
     public IModel<List<String>> getPushActions() {
-        return new LoadableDetachableModel<List<String>>() {
+        return new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
             @Override
             protected List<String> load() {
                 return ImplementationRestClient.list(IdMImplementationType.PUSH_ACTIONS).stream().
-                        map(EntityTO::getKey).sorted().collect(Collectors.toList());
+                    map(EntityTO::getKey).sorted().collect(Collectors.toList());
             }
         };
     }
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/status/AbstractStatusBeanProvider.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/status/AbstractStatusBeanProvider.java
index 5bb28d7..ce21c9c 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/status/AbstractStatusBeanProvider.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/status/AbstractStatusBeanProvider.java
@@ -51,7 +51,7 @@
 
     @Override
     public IModel<StatusBean> model(final StatusBean statusBean) {
-        return new IModel<StatusBean>() {
+        return new IModel<>() {
 
             private static final long serialVersionUID = -7802635613997243712L;
 
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/CSVConfPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/CSVConfPanel.java
index 4867673..352547f 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/CSVConfPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/CSVConfPanel.java
@@ -69,7 +69,7 @@
                 "lineSeparator", "lineSeparator", new PropertyModel<>(spec, "lineSeparator"), false);
         lineSeparator.setChoices(Stream.of(CSVPullWizardBuilder.LineSeparator.values()).
                 map(CSVPullWizardBuilder.LineSeparator::name).collect(Collectors.toList()));
-        lineSeparator.setChoiceRenderer(new IChoiceRenderer<String>() {
+        lineSeparator.setChoiceRenderer(new IChoiceRenderer<>() {
 
             private static final long serialVersionUID = 8551710814349123350L;
 
@@ -85,7 +85,7 @@
 
             @Override
             public String getObject(
-                    final String id, final IModel<? extends List<? extends String>> choices) {
+                final String id, final IModel<? extends List<? extends String>> choices) {
 
                 return CSVPullWizardBuilder.LineSeparator.valueOf(id).getRepr();
             }
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/ConnObjectListViewPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/ConnObjectListViewPanel.java
index afe3278..17499d3 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/ConnObjectListViewPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/ConnObjectListViewPanel.java
@@ -147,8 +147,8 @@
 
         List<ConnObjectTO> listOfItems = reloadItems(resource.getKey(), anyType, null, null);
 
-        ListViewPanel.Builder<ConnObjectTO> builder = new ListViewPanel.Builder<ConnObjectTO>(
-                ConnObjectTO.class, pageRef) {
+        ListViewPanel.Builder<ConnObjectTO> builder = new ListViewPanel.Builder<>(
+            ConnObjectTO.class, pageRef) {
 
             private static final long serialVersionUID = -8251750413385566738L;
 
@@ -158,52 +158,52 @@
                     ReconStatus status;
                     try {
                         status = ReconciliationRestClient.status(
-                                new ReconQuery.Builder(anyType, resource.getKey()).fiql(bean.getFiql()).build());
+                            new ReconQuery.Builder(anyType, resource.getKey()).fiql(bean.getFiql()).build());
                     } catch (Exception e) {
                         LOG.error("While requesting for reconciliation status of {} {} with FIQL '{}'",
-                                anyType, resource.getKey(), bean.getFiql(), e);
+                            anyType, resource.getKey(), bean.getFiql(), e);
 
                         status = new ReconStatus();
                     }
 
                     return status.getOnSyncope() == null
-                            ? StatusUtils.getLabel("field", "notfound icon", "Not found", Constants.NOT_FOUND_ICON)
-                            : new Label("field", Model.of()).add(new PopoverBehavior(
-                                    Model.of(),
-                                    Model.of(status.getAnyKey()),
-                                    new PopoverConfig().
-                                            withTitle(status.getMatchType() == MatchType.LINKED_ACCOUNT
-                                                    ? MatchType.LINKED_ACCOUNT.name() + ", " + AnyTypeKind.USER
-                                                    : status.getAnyTypeKind().name()).
-                                            withPlacement(TooltipConfig.Placement.left)) {
+                        ? StatusUtils.getLabel("field", "notfound icon", "Not found", Constants.NOT_FOUND_ICON)
+                        : new Label("field", Model.of()).add(new PopoverBehavior(
+                        Model.of(),
+                        Model.of(status.getAnyKey()),
+                        new PopoverConfig().
+                            withTitle(status.getMatchType() == MatchType.LINKED_ACCOUNT
+                                ? MatchType.LINKED_ACCOUNT.name() + ", " + AnyTypeKind.USER
+                                : status.getAnyTypeKind().name()).
+                            withPlacement(TooltipConfig.Placement.left)) {
 
-                                private static final long serialVersionUID = -7867802555691605021L;
+                        private static final long serialVersionUID = -7867802555691605021L;
 
-                                @Override
-                                protected String createRelAttribute() {
-                                    return "field";
-                                }
+                        @Override
+                        protected String createRelAttribute() {
+                            return "field";
+                        }
 
-                                @Override
-                                public void onComponentTag(final Component component, final ComponentTag tag) {
-                                    super.onComponentTag(component, tag);
-                                    tag.put("class", Constants.ACTIVE_ICON);
-                                }
-                            });
+                        @Override
+                        public void onComponentTag(final Component component, final ComponentTag tag) {
+                            super.onComponentTag(component, tag);
+                            tag.put("class", Constants.ACTIVE_ICON);
+                        }
+                    });
                 } else {
                     Optional<Attr> attr =
-                            bean.getAttrs().stream().filter(object -> object.getSchema().equals(key)).findAny();
+                        bean.getAttrs().stream().filter(object -> object.getSchema().equals(key)).findAny();
 
                     return attr.isEmpty() || attr.get().getValues().isEmpty()
-                            ? new Label("field", StringUtils.EMPTY)
-                            : new CollectionPanel("field", attr.get().getValues());
+                        ? new Label("field", StringUtils.EMPTY)
+                        : new CollectionPanel("field", attr.get().getValues());
                 }
             }
 
         };
 
         builder.setReuseItem(false);
-        builder.addAction(new ActionLink<ConnObjectTO>() {
+        builder.addAction(new ActionLink<>() {
 
             private static final long serialVersionUID = 7511002881490248598L;
 
@@ -220,7 +220,7 @@
                 setReuseItem(false);
 
         if (!StringUtils.equals(anyType, SyncopeConstants.REALM_ANYTYPE)) {
-            builder.addAction(new ActionLink<ConnObjectTO>() {
+            builder.addAction(new ActionLink<>() {
 
                 private static final long serialVersionUID = 6377238742125L;
 
@@ -228,19 +228,19 @@
                 public void onClick(final AjaxRequestTarget target, final ConnObjectTO modelObject) {
                     try {
                         ReconStatus status = ReconciliationRestClient.status(
-                                new ReconQuery.Builder(anyType, resource.getKey()).fiql(modelObject.getFiql()).build());
+                            new ReconQuery.Builder(anyType, resource.getKey()).fiql(modelObject.getFiql()).build());
 
                         pullConnObject(
-                                modelObject.getFiql(),
-                                target,
-                                resource.getKey(),
-                                anyType,
-                                status.getRealm(),
-                                StringUtils.isNotBlank(status.getAnyKey()),
-                                pageRef);
+                            modelObject.getFiql(),
+                            target,
+                            resource.getKey(),
+                            anyType,
+                            status.getRealm(),
+                            StringUtils.isNotBlank(status.getAnyKey()),
+                            pageRef);
                     } catch (Exception e) {
                         LOG.error("While puling single object {} {} with FIQL '{}'",
-                                anyType, resource.getKey(), modelObject.getFiql(), e);
+                            anyType, resource.getKey(), modelObject.getFiql(), e);
 
                         SyncopeConsoleSession.get().onException(e);
                         ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/LinkedAccountModalPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/LinkedAccountModalPanel.java
index c184cff..cbed9bb 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/LinkedAccountModalPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/LinkedAccountModalPanel.java
@@ -117,19 +117,19 @@
             wizard = new LinkedAccountWizardBuilder(model, linkedAccountFormLayoutInfo, pageRef);
         }
 
-        ListViewPanel.Builder<LinkedAccountTO> builder = new ListViewPanel.Builder<LinkedAccountTO>(
-                LinkedAccountTO.class, pageRef) {
+        ListViewPanel.Builder<LinkedAccountTO> builder = new ListViewPanel.Builder<>(
+            LinkedAccountTO.class, pageRef) {
 
             private static final long serialVersionUID = -5322423525438435153L;
 
             @Override
             protected LinkedAccountTO getActualItem(final LinkedAccountTO item, final List<LinkedAccountTO> list) {
                 return item == null
-                        ? null
-                        : list.stream().filter(
-                                in -> ((item.getKey() == null && in.getKey() == null)
-                                || (in.getKey() != null && in.getKey().equals(item.getKey())))).
-                                findAny().orElse(null);
+                    ? null
+                    : list.stream().filter(
+                    in -> ((item.getKey() == null && in.getKey() == null)
+                        || (in.getKey() != null && in.getKey().equals(item.getKey())))).
+                    findAny().orElse(null);
             }
 
             @Override
@@ -186,7 +186,7 @@
         builder.setReuseItem(false);
         builder.withChecks(ListViewPanel.CheckAvailability.NONE);
 
-        builder.addAction(new ActionLink<LinkedAccountTO>() {
+        builder.addAction(new ActionLink<>() {
 
             private static final long serialVersionUID = 2555747430358755813L;
 
@@ -196,17 +196,17 @@
                         linkedAccountTO.getResource(),
                         model.getObject().getType(),
                         linkedAccountTO.getConnObjectKeyValue()),
-                        target);
+                    target);
                 target.add(mlp);
 
                 ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
                 send(LinkedAccountModalPanel.this, Broadcast.BREADTH,
-                        new ActionLinksTogglePanel.ActionLinkToggleCloseEventPayload(target));
+                    new ActionLinksTogglePanel.ActionLinkToggleCloseEventPayload(target));
             }
         }, ActionLink.ActionType.VIEW, IdRepoEntitlement.USER_READ);
 
         if (!recounciliationOnly) {
-            builder.addAction(new ActionLink<LinkedAccountTO>() {
+            builder.addAction(new ActionLink<>() {
 
                 private static final long serialVersionUID = 2555747430358755813L;
 
@@ -214,9 +214,9 @@
                 public void onClick(final AjaxRequestTarget target, final LinkedAccountTO linkedAccountTO) {
                     try {
                         send(LinkedAccountModalPanel.this, Broadcast.DEPTH,
-                                new AjaxWizard.NewItemActionEvent<>(linkedAccountTO, 1, target).
-                                        setResourceModel(new StringResourceModel("inner.edit.linkedAccount",
-                                                LinkedAccountModalPanel.this, Model.of(linkedAccountTO))));
+                            new AjaxWizard.NewItemActionEvent<>(linkedAccountTO, 1, target).
+                                setResourceModel(new StringResourceModel("inner.edit.linkedAccount",
+                                    LinkedAccountModalPanel.this, Model.of(linkedAccountTO))));
                     } catch (SyncopeClientException e) {
                         LOG.error("While attempting to create new linked account", e);
                         SyncopeConsoleSession.get().onException(e);
@@ -224,11 +224,11 @@
                     }
 
                     send(LinkedAccountModalPanel.this, Broadcast.BREADTH,
-                            new ActionLinksTogglePanel.ActionLinkToggleCloseEventPayload(target));
+                        new ActionLinksTogglePanel.ActionLinkToggleCloseEventPayload(target));
                 }
             }, ActionLink.ActionType.EDIT, IdRepoEntitlement.USER_UPDATE);
 
-            builder.addAction(new ActionLink<LinkedAccountTO>() {
+            builder.addAction(new ActionLink<>() {
 
                 private static final long serialVersionUID = 2555747430358755813L;
 
@@ -237,8 +237,8 @@
                     try {
                         linkedAccountTO.setSuspended(!linkedAccountTO.isSuspended());
                         LinkedAccountUR linkedAccountUR = new LinkedAccountUR.Builder().
-                                operation(PatchOperation.ADD_REPLACE).
-                                linkedAccountTO(linkedAccountTO).build();
+                            operation(PatchOperation.ADD_REPLACE).
+                            linkedAccountTO(linkedAccountTO).build();
 
                         UserUR req = new UserUR();
                         req.setKey(model.getObject().getKey());
@@ -259,60 +259,60 @@
             }, ActionLink.ActionType.ENABLE, IdRepoEntitlement.USER_UPDATE);
         }
 
-        builder.addAction(new ActionLink<LinkedAccountTO>() {
+        builder.addAction(new ActionLink<>() {
 
-            private static final long serialVersionUID = 2555747430358755813L;
+                  private static final long serialVersionUID = 2555747430358755813L;
 
-            @Override
-            public void onClick(final AjaxRequestTarget target, final LinkedAccountTO linkedAccountTO) {
-                mlp.next("PUSH " + linkedAccountTO.getResource(),
-                        new ReconTaskPanel(
-                                linkedAccountTO.getResource(),
-                                new PushTaskTO(),
-                                model.getObject().getType(),
-                                null,
-                                ConnIdSpecialName.UID + "==" + linkedAccountTO.getConnObjectKeyValue(),
-                                true,
-                                mlp,
-                                pageRef),
-                        target);
-                target.add(mlp);
+                  @Override
+                  public void onClick(final AjaxRequestTarget target, final LinkedAccountTO linkedAccountTO) {
+                      mlp.next("PUSH " + linkedAccountTO.getResource(),
+                          new ReconTaskPanel(
+                              linkedAccountTO.getResource(),
+                              new PushTaskTO(),
+                              model.getObject().getType(),
+                              null,
+                              ConnIdSpecialName.UID + "==" + linkedAccountTO.getConnObjectKeyValue(),
+                              true,
+                              mlp,
+                              pageRef),
+                          target);
+                      target.add(mlp);
 
-                ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
-                send(LinkedAccountModalPanel.this, Broadcast.BREADTH,
-                        new ActionLinksTogglePanel.ActionLinkToggleCloseEventPayload(target));
-            }
-        }, ActionLink.ActionType.RECONCILIATION_PUSH,
-                String.format("%s,%s", IdRepoEntitlement.USER_READ, IdRepoEntitlement.TASK_EXECUTE));
+                      ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
+                      send(LinkedAccountModalPanel.this, Broadcast.BREADTH,
+                          new ActionLinksTogglePanel.ActionLinkToggleCloseEventPayload(target));
+                  }
+              }, ActionLink.ActionType.RECONCILIATION_PUSH,
+            String.format("%s,%s", IdRepoEntitlement.USER_READ, IdRepoEntitlement.TASK_EXECUTE));
 
-        builder.addAction(new ActionLink<LinkedAccountTO>() {
+        builder.addAction(new ActionLink<>() {
 
-            private static final long serialVersionUID = 2555747430358755813L;
+                      private static final long serialVersionUID = 2555747430358755813L;
 
-            @Override
-            public void onClick(final AjaxRequestTarget target, final LinkedAccountTO linkedAccountTO) {
-                mlp.next("PULL " + linkedAccountTO.getResource(),
-                        new ReconTaskPanel(
-                                linkedAccountTO.getResource(),
-                                new PullTaskTO(),
-                                model.getObject().getType(),
-                                null,
-                                ConnIdSpecialName.UID + "==" + linkedAccountTO.getConnObjectKeyValue(),
-                                true,
-                                mlp,
-                                pageRef),
-                        target);
-                target.add(mlp);
+                      @Override
+                      public void onClick(final AjaxRequestTarget target, final LinkedAccountTO linkedAccountTO) {
+                          mlp.next("PULL " + linkedAccountTO.getResource(),
+                              new ReconTaskPanel(
+                                  linkedAccountTO.getResource(),
+                                  new PullTaskTO(),
+                                  model.getObject().getType(),
+                                  null,
+                                  ConnIdSpecialName.UID + "==" + linkedAccountTO.getConnObjectKeyValue(),
+                                  true,
+                                  mlp,
+                                  pageRef),
+                              target);
+                          target.add(mlp);
 
-                ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
-                send(LinkedAccountModalPanel.this, Broadcast.BREADTH,
-                        new ActionLinksTogglePanel.ActionLinkToggleCloseEventPayload(target));
-            }
-        }, ActionLink.ActionType.RECONCILIATION_PULL,
-                String.format("%s,%s", IdRepoEntitlement.USER_READ, IdRepoEntitlement.TASK_EXECUTE));
+                          ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
+                          send(LinkedAccountModalPanel.this, Broadcast.BREADTH,
+                              new ActionLinksTogglePanel.ActionLinkToggleCloseEventPayload(target));
+                      }
+                  }, ActionLink.ActionType.RECONCILIATION_PULL,
+            String.format("%s,%s", IdRepoEntitlement.USER_READ, IdRepoEntitlement.TASK_EXECUTE));
 
         if (!recounciliationOnly) {
-            builder.addAction(new ActionLink<LinkedAccountTO>() {
+            builder.addAction(new ActionLink<>() {
 
                 private static final long serialVersionUID = 2555747430358755813L;
 
@@ -320,8 +320,8 @@
                 public void onClick(final AjaxRequestTarget target, final LinkedAccountTO linkedAccountTO) {
                     try {
                         LinkedAccountUR linkedAccountUR = new LinkedAccountUR.Builder().
-                                operation(PatchOperation.DELETE).
-                                linkedAccountTO(linkedAccountTO).build();
+                            operation(PatchOperation.DELETE).
+                            linkedAccountTO(linkedAccountTO).build();
 
                         UserUR req = new UserUR();
                         req.setKey(model.getObject().getKey());
@@ -349,19 +349,19 @@
         list.setReadOnly(!SyncopeConsoleSession.get().
                 owns(IdRepoEntitlement.USER_UPDATE, model.getObject().getRealm()));
 
-        addAjaxLink = new AjaxLink<LinkedAccountTO>("add") {
+        addAjaxLink = new AjaxLink<>("add") {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
             @Override
             public void onClick(final AjaxRequestTarget target) {
                 send(LinkedAccountModalPanel.this, Broadcast.BREADTH,
-                        new ActionLinksTogglePanel.ActionLinkToggleCloseEventPayload(target));
+                    new ActionLinksTogglePanel.ActionLinkToggleCloseEventPayload(target));
 
                 // this opens the wizard (set above) in CREATE mode
                 send(list, Broadcast.DEPTH, new AjaxWizard.NewItemActionEvent<>(new LinkedAccountTO(), target).
-                        setResourceModel(
-                                new StringResourceModel("inner.create.linkedAccount", LinkedAccountModalPanel.this)));
+                    setResourceModel(
+                        new StringResourceModel("inner.create.linkedAccount", LinkedAccountModalPanel.this)));
             }
         };
         list.addOrReplaceInnerObject(addAjaxLink.setEnabled(!recounciliationOnly).setVisible(!recounciliationOnly));
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/RemediationDirectoryPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/RemediationDirectoryPanel.java
index 2428f48..d9d6d75 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/RemediationDirectoryPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/RemediationDirectoryPanel.java
@@ -124,7 +124,7 @@
     protected ActionsPanel<RemediationTO> getActions(final IModel<RemediationTO> model) {
         ActionsPanel<RemediationTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<RemediationTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = 6193210574968203299L;
 
@@ -146,7 +146,7 @@
                 ? IdRepoEntitlement.GROUP_DELETE
                 : AnyEntitlement.DELETE.getFor(model.getObject().getAnyType()) }, ",");
 
-            panel.add(new ActionLink<RemediationTO>() {
+            panel.add(new ActionLink<>() {
 
                 private static final long serialVersionUID = 6193210574968203299L;
 
@@ -180,7 +180,7 @@
                 ? IdRepoEntitlement.GROUP_UPDATE
                 : AnyEntitlement.UPDATE.getFor(model.getObject().getAnyType()) }, ",");
 
-            panel.add(new ActionLink<RemediationTO>() {
+            panel.add(new ActionLink<>() {
 
                 private static final long serialVersionUID = 6193210574968203299L;
 
@@ -199,20 +199,20 @@
                                 previousUserTO = null;
                             } else {
                                 previousUserTO = new UserRestClient().
-                                        read(remediationTO.getAnyURPayload().getKey());
+                                    read(remediationTO.getAnyURPayload().getKey());
                                 newUserTO = AnyOperations.patch(
-                                        previousUserTO, (UserUR) remediationTO.getAnyURPayload());
+                                    previousUserTO, (UserUR) remediationTO.getAnyURPayload());
                             }
 
                             AjaxWizard.EditItemActionEvent<UserTO> userEvent =
-                                    new AjaxWizard.EditItemActionEvent<>(newUserTO, target);
+                                new AjaxWizard.EditItemActionEvent<>(newUserTO, target);
                             userEvent.forceModalPanel(new RemediationUserWizardBuilder(
-                                    model.getObject(),
-                                    previousUserTO,
-                                    newUserTO,
-                                    AnyTypeRestClient.read(remediationTO.getAnyType()).getClasses(),
-                                    AnyLayoutUtils.fetch(List.of(remediationTO.getAnyType())).getUser(),
-                                    pageRef
+                                model.getObject(),
+                                previousUserTO,
+                                newUserTO,
+                                AnyTypeRestClient.read(remediationTO.getAnyType()).getClasses(),
+                                AnyLayoutUtils.fetch(List.of(remediationTO.getAnyType())).getUser(),
+                                pageRef
                             ).build(BaseModal.CONTENT_ID, AjaxWizard.Mode.EDIT));
                             send(RemediationDirectoryPanel.this, Broadcast.EXACT, userEvent);
                             break;
@@ -226,20 +226,20 @@
                                 previousGroupTO = null;
                             } else {
                                 previousGroupTO = new GroupRestClient().
-                                        read(remediationTO.getAnyURPayload().getKey());
+                                    read(remediationTO.getAnyURPayload().getKey());
                                 newGroupTO = AnyOperations.patch(
-                                        previousGroupTO, (GroupUR) remediationTO.getAnyURPayload());
+                                    previousGroupTO, (GroupUR) remediationTO.getAnyURPayload());
                             }
 
                             AjaxWizard.EditItemActionEvent<GroupTO> groupEvent =
-                                    new AjaxWizard.EditItemActionEvent<>(newGroupTO, target);
+                                new AjaxWizard.EditItemActionEvent<>(newGroupTO, target);
                             groupEvent.forceModalPanel(new RemediationGroupWizardBuilder(
-                                    model.getObject(),
-                                    previousGroupTO,
-                                    newGroupTO,
-                                    AnyTypeRestClient.read(remediationTO.getAnyType()).getClasses(),
-                                    AnyLayoutUtils.fetch(List.of(remediationTO.getAnyType())).getGroup(),
-                                    pageRef
+                                model.getObject(),
+                                previousGroupTO,
+                                newGroupTO,
+                                AnyTypeRestClient.read(remediationTO.getAnyType()).getClasses(),
+                                AnyLayoutUtils.fetch(List.of(remediationTO.getAnyType())).getGroup(),
+                                pageRef
                             ).build(BaseModal.CONTENT_ID, AjaxWizard.Mode.EDIT));
                             send(RemediationDirectoryPanel.this, Broadcast.EXACT, groupEvent);
                             break;
@@ -253,21 +253,21 @@
                                 previousAnyObjectTO = null;
                             } else {
                                 previousAnyObjectTO = new AnyObjectRestClient().
-                                        read(remediationTO.getAnyURPayload().getKey());
+                                    read(remediationTO.getAnyURPayload().getKey());
                                 newAnyObjectTO = AnyOperations.patch(
-                                        previousAnyObjectTO, (AnyObjectUR) remediationTO.getAnyURPayload());
+                                    previousAnyObjectTO, (AnyObjectUR) remediationTO.getAnyURPayload());
                             }
 
                             AjaxWizard.EditItemActionEvent<AnyObjectTO> anyObjectEvent =
-                                    new AjaxWizard.EditItemActionEvent<>(newAnyObjectTO, target);
+                                new AjaxWizard.EditItemActionEvent<>(newAnyObjectTO, target);
                             anyObjectEvent.forceModalPanel(new RemediationAnyObjectWizardBuilder(
-                                    model.getObject(),
-                                    previousAnyObjectTO,
-                                    newAnyObjectTO,
-                                    AnyTypeRestClient.read(remediationTO.getAnyType()).getClasses(),
-                                    AnyLayoutUtils.fetch(List.of(remediationTO.getAnyType())).getAnyObjects().
-                                            get(remediationTO.getAnyType()),
-                                    pageRef
+                                model.getObject(),
+                                previousAnyObjectTO,
+                                newAnyObjectTO,
+                                AnyTypeRestClient.read(remediationTO.getAnyType()).getClasses(),
+                                AnyLayoutUtils.fetch(List.of(remediationTO.getAnyType())).getAnyObjects().
+                                    get(remediationTO.getAnyType()),
+                                pageRef
                             ).build(BaseModal.CONTENT_ID, AjaxWizard.Mode.EDIT));
                             send(RemediationDirectoryPanel.this, Broadcast.EXACT, anyObjectEvent);
                     }
@@ -275,7 +275,7 @@
             }, ActionLink.ActionType.EDIT, entitlements);
         }
 
-        panel.add(new ActionLink<RemediationTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = 6193210574968203299L;
 
@@ -335,7 +335,7 @@
 
         @Override
         public IModel<RemediationTO> model(final RemediationTO remediation) {
-            return new IModel<RemediationTO>() {
+            return new IModel<>() {
 
                 private static final long serialVersionUID = -2566070996511906708L;
 
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/search/ConnObjectSearchPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/search/ConnObjectSearchPanel.java
index 793b322..2d69576 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/search/ConnObjectSearchPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/search/ConnObjectSearchPanel.java
@@ -78,7 +78,7 @@
 
     @Override
     protected void populate() {
-        this.types = new LoadableDetachableModel<List<SearchClause.Type>>() {
+        this.types = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 22668815812716L;
 
@@ -88,7 +88,7 @@
             }
         };
 
-        this.dnames = new LoadableDetachableModel<Map<String, PlainSchemaTO>>() {
+        this.dnames = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 2989042618372L;
 
@@ -98,18 +98,18 @@
             }
         };
 
-        this.anames = new LoadableDetachableModel<Map<String, PlainSchemaTO>>() {
+        this.anames = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 3002350300761L;
 
             @Override
             protected Map<String, PlainSchemaTO> load() {
                 return connectorRestClient.buildObjectClassInfo(
-                        connectorRestClient.read(resource.getConnector()), false).stream().
-                        map(ConnIdObjectClassTO::getAttributes).
-                        flatMap(List::stream).
-                        collect(Collectors.toMap(PlainSchemaTO::getKey, Function.identity(),
-                                (schema1, schema2) -> schema1));
+                    connectorRestClient.read(resource.getConnector()), false).stream().
+                    map(ConnIdObjectClassTO::getAttributes).
+                    flatMap(List::stream).
+                    collect(Collectors.toMap(PlainSchemaTO::getKey, Function.identity(),
+                        (schema1, schema2) -> schema1));
             }
         };
     }
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/policies/ProvisioningPolicyModalPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/policies/ProvisioningPolicyModalPanel.java
index 5b9935f..07ddf96 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/policies/ProvisioningPolicyModalPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/policies/ProvisioningPolicyModalPanel.java
@@ -83,31 +83,31 @@
         super((BaseModal<ProvisioningPolicyTO>) modal, pageRef);
         ((BaseModal<ProvisioningPolicyTO>) modal).setFormModel(policyTO);
 
-        implementations = new LoadableDetachableModel<Map<String, ImplementationTO>>() {
+        implementations = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
             @Override
             protected Map<String, ImplementationTO> load() {
                 return ImplementationRestClient.list(policyTO instanceof PullPolicyTO
-                        ? IdMImplementationType.PULL_CORRELATION_RULE
-                        : IdMImplementationType.PUSH_CORRELATION_RULE).stream().
-                        collect(Collectors.toMap(EntityTO::getKey, Function.identity()));
+                    ? IdMImplementationType.PULL_CORRELATION_RULE
+                    : IdMImplementationType.PUSH_CORRELATION_RULE).stream().
+                    collect(Collectors.toMap(EntityTO::getKey, Function.identity()));
             }
         };
 
-        model = new PropertyModel<List<CorrelationRule>>(policyTO, "correlationRules") {
+        model = new PropertyModel<>(policyTO, "correlationRules") {
 
             private static final long serialVersionUID = -8168676563540297301L;
 
             private final List<CorrelationRule> rules = policyTO.getCorrelationRules().keySet().stream().
-                    map(anyType -> new CorrelationRule(
+                map(anyType -> new CorrelationRule(
                     policyTO instanceof PullPolicyTO
-                            ? DefaultPullCorrelationRuleConf.class
-                            : DefaultPushCorrelationRuleConf.class,
+                        ? DefaultPullCorrelationRuleConf.class
+                        : DefaultPushCorrelationRuleConf.class,
                     anyType,
                     implementations.getObject().get(policyTO.getCorrelationRules().get(anyType)))).
-                    collect(Collectors.toList());
+                collect(Collectors.toList());
 
             @Override
             public List<CorrelationRule> getObject() {
@@ -121,15 +121,15 @@
             }
         };
 
-        add(new MultiPanel<CorrelationRule>("correlationRules", "correlationRules", model) {
+        add(new MultiPanel<>("correlationRules", "correlationRules", model) {
 
             private static final long serialVersionUID = -2481579077338205547L;
 
             @Override
             protected CorrelationRule newModelObject() {
                 return new CorrelationRule(policyTO instanceof PullPolicyTO
-                        ? DefaultPullCorrelationRuleConf.class
-                        : DefaultPushCorrelationRuleConf.class);
+                    ? DefaultPullCorrelationRuleConf.class
+                    : DefaultPushCorrelationRuleConf.class);
             }
 
             @Override
@@ -196,76 +196,76 @@
             add(rule);
 
             PropertyModel<Boolean> orSchemasModel =
-                    new PropertyModel<Boolean>(correlationRule.getObject().getDefaultRuleConf(), "orSchemas") {
+                new PropertyModel<>(correlationRule.getObject().getDefaultRuleConf(), "orSchemas") {
 
-                private static final long serialVersionUID = 807008909842554829L;
+                    private static final long serialVersionUID = 807008909842554829L;
 
-                @Override
-                public Boolean getObject() {
-                    AbstractCorrelationRuleConf conf = correlationRule.getObject().getDefaultRuleConf();
-                    return conf instanceof DefaultPullCorrelationRuleConf
+                    @Override
+                    public Boolean getObject() {
+                        AbstractCorrelationRuleConf conf = correlationRule.getObject().getDefaultRuleConf();
+                        return conf instanceof DefaultPullCorrelationRuleConf
                             ? DefaultPullCorrelationRuleConf.class.cast(conf).isOrSchemas()
                             : conf instanceof DefaultPushCorrelationRuleConf
-                                    ? DefaultPushCorrelationRuleConf.class.cast(conf).isOrSchemas()
-                                    : false;
-                }
-
-                @Override
-                public void setObject(final Boolean object) {
-                    AbstractCorrelationRuleConf conf = correlationRule.getObject().getDefaultRuleConf();
-                    if (conf instanceof DefaultPullCorrelationRuleConf) {
-                        DefaultPullCorrelationRuleConf.class.cast(conf).setOrSchemas(object);
-                    } else if (conf instanceof DefaultPushCorrelationRuleConf) {
-                        DefaultPushCorrelationRuleConf.class.cast(conf).setOrSchemas(object);
+                            ? DefaultPushCorrelationRuleConf.class.cast(conf).isOrSchemas()
+                            : false;
                     }
-                }
-            };
+
+                    @Override
+                    public void setObject(final Boolean object) {
+                        AbstractCorrelationRuleConf conf = correlationRule.getObject().getDefaultRuleConf();
+                        if (conf instanceof DefaultPullCorrelationRuleConf) {
+                            DefaultPullCorrelationRuleConf.class.cast(conf).setOrSchemas(object);
+                        } else if (conf instanceof DefaultPushCorrelationRuleConf) {
+                            DefaultPushCorrelationRuleConf.class.cast(conf).setOrSchemas(object);
+                        }
+                    }
+                };
             AjaxCheckBoxPanel orSchemas = new AjaxCheckBoxPanel("orSchemas", "orSchemas", orSchemasModel, false);
             orSchemas.setOutputMarkupPlaceholderTag(true);
             add(orSchemas.setVisible(correlationRule.getObject().getDefaultRuleConf() != null));
 
             PropertyModel<List<String>> defaultRuleConfModel =
-                    new PropertyModel<List<String>>(correlationRule.getObject().getDefaultRuleConf(), "schemas") {
+                new PropertyModel<>(correlationRule.getObject().getDefaultRuleConf(), "schemas") {
 
-                private static final long serialVersionUID = 3799387950428254072L;
+                    private static final long serialVersionUID = 3799387950428254072L;
 
-                private List<String> schemas() {
-                    AbstractCorrelationRuleConf conf = correlationRule.getObject().getDefaultRuleConf();
-                    return conf instanceof DefaultPullCorrelationRuleConf
+                    private List<String> schemas() {
+                        AbstractCorrelationRuleConf conf = correlationRule.getObject().getDefaultRuleConf();
+                        return conf instanceof DefaultPullCorrelationRuleConf
                             ? DefaultPullCorrelationRuleConf.class.cast(conf).getSchemas()
                             : conf instanceof DefaultPushCorrelationRuleConf
-                                    ? DefaultPushCorrelationRuleConf.class.cast(conf).getSchemas()
-                                    : List.of();
-                }
-
-                @Override
-                public List<String> getObject() {
-                    List<String> schemas = new ArrayList<>();
-                    if (correlationRule.getObject().getDefaultRuleConf() != null) {
-                        schemas.addAll(schemas());
+                            ? DefaultPushCorrelationRuleConf.class.cast(conf).getSchemas()
+                            : List.of();
                     }
-                    return schemas;
-                }
 
-                @Override
-                public void setObject(final List<String> object) {
-                    if (correlationRule.getObject().getDefaultRuleConf() != null) {
-                        schemas().clear();
-                        schemas().addAll(object);
+                    @Override
+                    public List<String> getObject() {
+                        List<String> schemas = new ArrayList<>();
+                        if (correlationRule.getObject().getDefaultRuleConf() != null) {
+                            schemas.addAll(schemas());
+                        }
+                        return schemas;
                     }
-                }
-            };
+
+                    @Override
+                    public void setObject(final List<String> object) {
+                        if (correlationRule.getObject().getDefaultRuleConf() != null) {
+                            schemas().clear();
+                            schemas().addAll(object);
+                        }
+                    }
+                };
             AjaxPalettePanel<String> defaultRuleConf = new AjaxPalettePanel.Builder<String>().
                     setName("defaultRuleConf").build("defaultRuleConf",
-                    defaultRuleConfModel, new AjaxPalettePanel.Builder.Query<String>() {
+                    defaultRuleConfModel, new AjaxPalettePanel.Builder.Query<>() {
 
-                private static final long serialVersionUID = -7223078772249308813L;
+                    private static final long serialVersionUID = -7223078772249308813L;
 
-                @Override
-                public List<String> execute(final String filter) {
-                    return getSchemas(correlationRule.getObject());
-                }
-            });
+                    @Override
+                    public List<String> execute(final String filter) {
+                        return getSchemas(correlationRule.getObject());
+                    }
+                });
             defaultRuleConf.hideLabel().setOutputMarkupPlaceholderTag(true);
             add(defaultRuleConf.setVisible(correlationRule.getObject().getDefaultRuleConf() != null));
 
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/policies/PullPolicyDirectoryPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/policies/PullPolicyDirectoryPanel.java
index 63219d7..9f5eb90 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/policies/PullPolicyDirectoryPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/policies/PullPolicyDirectoryPanel.java
@@ -60,20 +60,20 @@
 
     @Override
     protected void addCustomActions(final ActionsPanel<PullPolicyTO> panel, final IModel<PullPolicyTO> model) {
-        panel.add(new ActionLink<PullPolicyTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final PullPolicyTO ignore) {
                 target.add(policySpecModal.setContent(
-                        new ProvisioningPolicyModalPanel(model.getObject(), policySpecModal, pageRef)));
+                    new ProvisioningPolicyModalPanel(model.getObject(), policySpecModal, pageRef)));
 
                 policySpecModal.header(new StringResourceModel(
-                        "policy.rules", PullPolicyDirectoryPanel.this, Model.of(model.getObject())));
+                    "policy.rules", PullPolicyDirectoryPanel.this, Model.of(model.getObject())));
 
                 MetaDataRoleAuthorizationStrategy.authorize(
-                        policySpecModal.getForm(), ENABLE, IdRepoEntitlement.POLICY_UPDATE);
+                    policySpecModal.getForm(), ENABLE, IdRepoEntitlement.POLICY_UPDATE);
 
                 policySpecModal.show(true);
             }
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/policies/PushPolicyDirectoryPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/policies/PushPolicyDirectoryPanel.java
index adcd73b..0cc829e 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/policies/PushPolicyDirectoryPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/policies/PushPolicyDirectoryPanel.java
@@ -60,20 +60,20 @@
 
     @Override
     protected void addCustomActions(final ActionsPanel<PushPolicyTO> panel, final IModel<PushPolicyTO> model) {
-        panel.add(new ActionLink<PushPolicyTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final PushPolicyTO ignore) {
                 target.add(policySpecModal.setContent(
-                        new ProvisioningPolicyModalPanel(model.getObject(), policySpecModal, pageRef)));
+                    new ProvisioningPolicyModalPanel(model.getObject(), policySpecModal, pageRef)));
 
                 policySpecModal.header(new StringResourceModel(
-                        "policy.rules", PushPolicyDirectoryPanel.this, Model.of(model.getObject())));
+                    "policy.rules", PushPolicyDirectoryPanel.this, Model.of(model.getObject())));
 
                 MetaDataRoleAuthorizationStrategy.authorize(
-                        policySpecModal.getForm(), ENABLE, IdRepoEntitlement.POLICY_UPDATE);
+                    policySpecModal.getForm(), ENABLE, IdRepoEntitlement.POLICY_UPDATE);
 
                 policySpecModal.show(true);
             }
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/rest/RemediationRestClient.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/rest/RemediationRestClient.java
index 7a31fd8..4b6dae8 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/rest/RemediationRestClient.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/rest/RemediationRestClient.java
@@ -52,19 +52,19 @@
 
     public static <C extends AnyCR, A extends AnyTO> ProvisioningResult<A> remedy(final String key, final C anyCR) {
         Response response = getService(RemediationService.class).remedy(key, anyCR);
-        return response.readEntity(new GenericType<ProvisioningResult<A>>() {
+        return response.readEntity(new GenericType<>() {
         });
     }
 
     public static <T extends AnyTO> ProvisioningResult<T> remedy(final String key, final AnyUR anyUR) {
         Response response = getService(RemediationService.class).remedy(key, anyUR);
-        return response.readEntity(new GenericType<ProvisioningResult<T>>() {
+        return response.readEntity(new GenericType<>() {
         });
     }
 
     public static ProvisioningResult<? extends AnyTO> remedy(final String key, final String anyKey) {
         Response response = getService(RemediationService.class).remedy(key, anyKey);
-        return response.readEntity(new GenericType<ProvisioningResult<? extends AnyTO>>() {
+        return response.readEntity(new GenericType<>() {
         });
     }
 
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/status/AnyStatusDirectoryPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/status/AnyStatusDirectoryPanel.java
index 36af193..29796ba 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/status/AnyStatusDirectoryPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/status/AnyStatusDirectoryPanel.java
@@ -127,16 +127,16 @@
     protected List<IColumn<StatusBean, String>> getColumns() {
         final List<IColumn<StatusBean, String>> columns = new ArrayList<>();
 
-        columns.add(new AbstractColumn<StatusBean, String>(
-                new StringResourceModel("resource", this), "resource") {
+        columns.add(new AbstractColumn<>(
+            new StringResourceModel("resource", this), "resource") {
 
             private static final long serialVersionUID = 2054811145491901166L;
 
             @Override
             public void populateItem(
-                    final Item<ICellPopulator<StatusBean>> cellItem,
-                    final String componentId,
-                    final IModel<StatusBean> model) {
+                final Item<ICellPopulator<StatusBean>> cellItem,
+                final String componentId,
+                final IModel<StatusBean> model) {
 
                 cellItem.add(new Label(componentId, model.getObject().getResource()) {
 
@@ -145,7 +145,7 @@
                     @Override
                     protected void onComponentTag(final ComponentTag tag) {
                         if (anyTO.getResources().contains(model.getObject().getResource())
-                                || Constants.SYNCOPE.equalsIgnoreCase(model.getObject().getResource())) {
+                            || Constants.SYNCOPE.equalsIgnoreCase(model.getObject().getResource())) {
 
                             super.onComponentTag(tag);
                         } else {
@@ -160,15 +160,15 @@
             columns.add(new PropertyColumn<>(
                     new StringResourceModel("connObjectLink", this), "connObjectLink", "connObjectLink"));
 
-            columns.add(new AbstractColumn<StatusBean, String>(new StringResourceModel("status", this)) {
+            columns.add(new AbstractColumn<>(new StringResourceModel("status", this)) {
 
                 private static final long serialVersionUID = -3503023501954863131L;
 
                 @Override
                 public void populateItem(
-                        final Item<ICellPopulator<StatusBean>> cellItem,
-                        final String componentId,
-                        final IModel<StatusBean> model) {
+                    final Item<ICellPopulator<StatusBean>> cellItem,
+                    final String componentId,
+                    final IModel<StatusBean> model) {
 
                     if (model.getObject().isLinked()) {
                         cellItem.add(StatusUtils.getStatusImage(componentId, model.getObject().getStatus()));
@@ -187,15 +187,15 @@
         final ActionsPanel<StatusBean> panel = super.getActions(model);
 
         if (!Constants.SYNCOPE.equalsIgnoreCase(model.getObject().getResource())) {
-            panel.add(new ActionLink<StatusBean>() {
+            panel.add(new ActionLink<>() {
 
                 private static final long serialVersionUID = -7978723352517770645L;
 
                 @Override
                 public void onClick(final AjaxRequestTarget target, final StatusBean bean) {
                     multiLevelPanelRef.next(bean.getResource(),
-                            new ReconStatusPanel(bean.getResource(), anyTO.getType(), anyTO.getKey()),
-                            target);
+                        new ReconStatusPanel(bean.getResource(), anyTO.getType(), anyTO.getKey()),
+                        target);
                     target.add(multiLevelPanelRef);
                     AnyStatusDirectoryPanel.this.getTogglePanel().close(target);
                 }
@@ -203,43 +203,43 @@
         }
 
         if (!statusOnly) {
-            panel.add(new ActionLink<StatusBean>() {
+            panel.add(new ActionLink<>() {
 
                 private static final long serialVersionUID = -7978723352517770645L;
 
                 @Override
                 public void onClick(final AjaxRequestTarget target, final StatusBean bean) {
                     multiLevelPanelRef.next("PUSH " + bean.getResource(),
-                            new ReconTaskPanel(
-                                    bean.getResource(),
-                                    new PushTaskTO(),
-                                    anyTO.getType(),
-                                    anyTO.getKey(),
-                                    true,
-                                    multiLevelPanelRef,
-                                    pageRef),
-                            target);
+                        new ReconTaskPanel(
+                            bean.getResource(),
+                            new PushTaskTO(),
+                            anyTO.getType(),
+                            anyTO.getKey(),
+                            true,
+                            multiLevelPanelRef,
+                            pageRef),
+                        target);
                     target.add(multiLevelPanelRef);
                     AnyStatusDirectoryPanel.this.getTogglePanel().close(target);
                 }
             }, ActionLink.ActionType.RECONCILIATION_PUSH, IdRepoEntitlement.TASK_EXECUTE);
 
-            panel.add(new ActionLink<StatusBean>() {
+            panel.add(new ActionLink<>() {
 
                 private static final long serialVersionUID = -7978723352517770645L;
 
                 @Override
                 public void onClick(final AjaxRequestTarget target, final StatusBean bean) {
                     multiLevelPanelRef.next("PULL " + bean.getResource(),
-                            new ReconTaskPanel(
-                                    bean.getResource(),
-                                    new PullTaskTO(),
-                                    anyTO.getType(),
-                                    anyTO.getKey(),
-                                    true,
-                                    multiLevelPanelRef,
-                                    pageRef),
-                            target);
+                        new ReconTaskPanel(
+                            bean.getResource(),
+                            new PullTaskTO(),
+                            anyTO.getType(),
+                            anyTO.getKey(),
+                            true,
+                            multiLevelPanelRef,
+                            pageRef),
+                        target);
                     target.add(multiLevelPanelRef);
                     AnyStatusDirectoryPanel.this.getTogglePanel().close(target);
                 }
@@ -254,19 +254,19 @@
                         return linkedAccountTO.getResource().equals(model.getObject().getResource());
                     })) {
 
-                panel.add(new ActionLink<StatusBean>() {
+                panel.add(new ActionLink<>() {
 
-                    private static final long serialVersionUID = 5168094747477174155L;
+                              private static final long serialVersionUID = 5168094747477174155L;
 
-                    @Override
-                    public void onClick(final AjaxRequestTarget target, final StatusBean bean) {
-                        multiLevelPanelRef.next("ACCOUNTS",
-                                new LinkedAccountsStatusModalPanel(Model.of(UserTO.class.cast(anyTO)), pageRef),
-                                target);
-                        target.add(multiLevelPanelRef);
-                        AnyStatusDirectoryPanel.this.getTogglePanel().close(target);
-                    }
-                }, ActionLink.ActionType.MANAGE_ACCOUNTS,
+                              @Override
+                              public void onClick(final AjaxRequestTarget target, final StatusBean bean) {
+                                  multiLevelPanelRef.next("ACCOUNTS",
+                                      new LinkedAccountsStatusModalPanel(Model.of(UserTO.class.cast(anyTO)), pageRef),
+                                      target);
+                                  target.add(multiLevelPanelRef);
+                                  AnyStatusDirectoryPanel.this.getTogglePanel().close(target);
+                              }
+                          }, ActionLink.ActionType.MANAGE_ACCOUNTS,
                         String.format("%s,%s,%s", IdRepoEntitlement.USER_READ, IdRepoEntitlement.USER_UPDATE,
                                 IdMEntitlement.RESOURCE_GET_CONNOBJECT));
             }
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/status/ReconTaskPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/status/ReconTaskPanel.java
index 80349b1..3071cba 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/status/ReconTaskPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/status/ReconTaskPanel.java
@@ -65,25 +65,25 @@
 
     protected static final Logger LOG = LoggerFactory.getLogger(ReconTaskPanel.class);
 
-    private final IModel<List<String>> pullActions = new LoadableDetachableModel<List<String>>() {
+    private final IModel<List<String>> pullActions = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = 5275935387613157437L;
 
         @Override
         protected List<String> load() {
             return ImplementationRestClient.list(IdMImplementationType.PULL_ACTIONS).stream().
-                    map(EntityTO::getKey).sorted().collect(Collectors.toList());
+                map(EntityTO::getKey).sorted().collect(Collectors.toList());
         }
     };
 
-    private final IModel<List<String>> pushActions = new LoadableDetachableModel<List<String>>() {
+    private final IModel<List<String>> pushActions = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = 5275935387613157437L;
 
         @Override
         protected List<String> load() {
             return ImplementationRestClient.list(IdMImplementationType.PUSH_ACTIONS).stream().
-                    map(EntityTO::getKey).sorted().collect(Collectors.toList());
+                map(EntityTO::getKey).sorted().collect(Collectors.toList());
         }
     };
 
@@ -122,7 +122,7 @@
             settings.setShowListOnEmptyInput(!isSearchEnabled);
 
             AjaxSearchFieldPanel realm = new AjaxSearchFieldPanel(
-                    "realm", "destinationRealm", new PropertyModel<String>(taskTO, "destinationRealm"), settings) {
+                    "realm", "destinationRealm", new PropertyModel<>(taskTO, "destinationRealm"), settings) {
 
                 private static final long serialVersionUID = -6390474600233486704L;
 
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusDirectoryPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusDirectoryPanel.java
index 256a1ba..b861878 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusDirectoryPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/status/ResourceStatusDirectoryPanel.java
@@ -109,7 +109,7 @@
     public ActionsPanel<StatusBean> getActions(final IModel<StatusBean> model) {
         final ActionsPanel<StatusBean> panel = super.getActions(model);
 
-        panel.add(new ActionLink<StatusBean>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770645L;
 
@@ -121,14 +121,14 @@
             @Override
             public void onClick(final AjaxRequestTarget target, final StatusBean bean) {
                 multiLevelPanelRef.next(bean.getResource(),
-                        new ReconStatusPanel(bean.getResource(), type, bean.getKey()),
-                        target);
+                    new ReconStatusPanel(bean.getResource(), type, bean.getKey()),
+                    target);
                 target.add(multiLevelPanelRef);
                 getTogglePanel().close(target);
             }
         }, ActionLink.ActionType.VIEW, IdMEntitlement.RESOURCE_GET_CONNOBJECT);
 
-        panel.add(new ActionLink<StatusBean>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770645L;
 
@@ -140,21 +140,21 @@
             @Override
             public void onClick(final AjaxRequestTarget target, final StatusBean bean) {
                 multiLevelPanelRef.next("PUSH " + bean.getResource(),
-                        new ReconTaskPanel(
-                                bean.getResource(),
-                                new PushTaskTO(),
-                                type,
-                                bean.getKey(),
-                                true,
-                                multiLevelPanelRef,
-                                pageRef),
-                        target);
+                    new ReconTaskPanel(
+                        bean.getResource(),
+                        new PushTaskTO(),
+                        type,
+                        bean.getKey(),
+                        true,
+                        multiLevelPanelRef,
+                        pageRef),
+                    target);
                 target.add(multiLevelPanelRef);
                 getTogglePanel().close(target);
             }
         }, ActionLink.ActionType.RECONCILIATION_PUSH, IdRepoEntitlement.TASK_EXECUTE);
 
-        panel.add(new ActionLink<StatusBean>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770645L;
 
@@ -166,15 +166,15 @@
             @Override
             public void onClick(final AjaxRequestTarget target, final StatusBean bean) {
                 multiLevelPanelRef.next("PULL " + bean.getResource(),
-                        new ReconTaskPanel(
-                                bean.getResource(),
-                                new PullTaskTO(),
-                                type,
-                                bean.getKey(),
-                                true,
-                                multiLevelPanelRef,
-                                pageRef),
-                        target);
+                    new ReconTaskPanel(
+                        bean.getResource(),
+                        new PullTaskTO(),
+                        type,
+                        bean.getKey(),
+                        true,
+                        multiLevelPanelRef,
+                        pageRef),
+                    target);
                 target.add(multiLevelPanelRef);
                 getTogglePanel().close(target);
             }
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
index a368a95..b152db8 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
@@ -83,7 +83,7 @@
 
     private final TopologyTogglePanel togglePanel;
 
-    private final LoadableDetachableModel<List<ResourceTO>> resModel = new LoadableDetachableModel<List<ResourceTO>>() {
+    private final LoadableDetachableModel<List<ResourceTO>> resModel = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = 5275935387613157431L;
 
@@ -94,50 +94,50 @@
     };
 
     private final LoadableDetachableModel<Map<String, List<ConnInstanceTO>>> connModel =
-            new LoadableDetachableModel<Map<String, List<ConnInstanceTO>>>() {
+        new LoadableDetachableModel<>() {
 
-        private static final long serialVersionUID = 5275935387613157432L;
+            private static final long serialVersionUID = 5275935387613157432L;
 
-        @Override
-        protected Map<String, List<ConnInstanceTO>> load() {
-            final Map<String, List<ConnInstanceTO>> res = new HashMap<>();
+            @Override
+            protected Map<String, List<ConnInstanceTO>> load() {
+                final Map<String, List<ConnInstanceTO>> res = new HashMap<>();
 
-            ConnectorRestClient.getAllConnectors().forEach(conn -> {
-                List<ConnInstanceTO> conns;
-                if (res.containsKey(conn.getLocation())) {
-                    conns = res.get(conn.getLocation());
-                } else {
-                    conns = new ArrayList<>();
-                    res.put(conn.getLocation(), conns);
-                }
-                conns.add(conn);
-            });
+                ConnectorRestClient.getAllConnectors().forEach(conn -> {
+                    List<ConnInstanceTO> conns;
+                    if (res.containsKey(conn.getLocation())) {
+                        conns = res.get(conn.getLocation());
+                    } else {
+                        conns = new ArrayList<>();
+                        res.put(conn.getLocation(), conns);
+                    }
+                    conns.add(conn);
+                });
 
-            return res;
-        }
-    };
+                return res;
+            }
+        };
 
     private final LoadableDetachableModel<Pair<List<URI>, List<URI>>> csModel =
-            new LoadableDetachableModel<Pair<List<URI>, List<URI>>>() {
+        new LoadableDetachableModel<>() {
 
-        private static final long serialVersionUID = 5275935387613157433L;
+            private static final long serialVersionUID = 5275935387613157433L;
 
-        @Override
-        protected Pair<List<URI>, List<URI>> load() {
-            final List<URI> connectorServers = new ArrayList<>();
-            final List<URI> filePaths = new ArrayList<>();
+            @Override
+            protected Pair<List<URI>, List<URI>> load() {
+                final List<URI> connectorServers = new ArrayList<>();
+                final List<URI> filePaths = new ArrayList<>();
 
-            SyncopeConsoleSession.get().getPlatformInfo().getConnIdLocations().forEach(location -> {
-                if (location.startsWith(CONNECTOR_SERVER_LOCATION_PREFIX)) {
-                    connectorServers.add(URI.create(location));
-                } else {
-                    filePaths.add(URI.create(location));
-                }
-            });
+                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);
-        }
-    };
+                return Pair.of(connectorServers, filePaths);
+            }
+        };
 
     protected enum SupportedOperation {
 
@@ -163,7 +163,7 @@
         // -----------------------------------------
         ActionsPanel<Serializable> zoomActionPanel = new ActionsPanel<>("zoom", null);
 
-        zoomActionPanel.add(new ActionLink<Serializable>() {
+        zoomActionPanel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -172,7 +172,7 @@
                 target.appendJavaScript("zoomIn($('#drawing')[0]);");
             }
         }, ActionLink.ActionType.ZOOM_IN, IdMEntitlement.CONNECTOR_LIST).disableIndicator().hideLabel();
-        zoomActionPanel.add(new ActionLink<Serializable>() {
+        zoomActionPanel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -211,7 +211,7 @@
         // -----------------------------------------
         // Add Connector Servers
         // -----------------------------------------
-        ListView<URI> connectorServers = new ListView<URI>("connectorServers", csModel.getObject().getLeft()) {
+        ListView<URI> connectorServers = new ListView<>("connectorServers", csModel.getObject().getLeft()) {
 
             private static final long serialVersionUID = 6978621871488360380L;
 
@@ -250,7 +250,7 @@
         // -----------------------------------------
         // Add File Paths
         // -----------------------------------------
-        ListView<URI> filePaths = new ListView<URI>("filePaths", csModel.getObject().getRight()) {
+        ListView<URI> filePaths = new ListView<>("filePaths", csModel.getObject().getRight()) {
 
             private static final long serialVersionUID = 6978621871488360380L;
 
@@ -290,64 +290,65 @@
         // Add Connector Intances
         // -----------------------------------------
         ListView<List<ConnInstanceTO>> conns =
-                new ListView<List<ConnInstanceTO>>("conns", new ArrayList<>(connModel.getObject().values())) {
+            new ListView<>("conns", new ArrayList<>(connModel.getObject().values())) {
 
-            private static final long serialVersionUID = 697862187148836036L;
+                private static final long serialVersionUID = 697862187148836036L;
 
-            @Override
-            protected void populateItem(final ListItem<List<ConnInstanceTO>> item) {
-                int size = item.getModelObject().size() + 1;
+                @Override
+                protected void populateItem(final ListItem<List<ConnInstanceTO>> item) {
+                    int size = item.getModelObject().size() + 1;
 
-                ListView<ConnInstanceTO> conns = new ListView<ConnInstanceTO>("conns", item.getModelObject()) {
+                    ListView<ConnInstanceTO> conns = new ListView<>("conns", item.getModelObject()) {
 
-                    private static final long serialVersionUID = 6978621871488360381L;
+                        private static final long serialVersionUID = 6978621871488360381L;
 
-                    @Override
-                    protected void populateItem(final ListItem<ConnInstanceTO> item) {
-                        ConnInstanceTO conn = item.getModelObject();
+                        @Override
+                        protected void populateItem(final ListItem<ConnInstanceTO> item) {
+                            ConnInstanceTO conn = item.getModelObject();
 
-                        TopologyNode topologynode = new TopologyNode(
+                            TopologyNode topologynode = new TopologyNode(
                                 conn.getKey(),
                                 StringUtils.isBlank(conn.getDisplayName()) // [SYNCOPE-1233]
-                                ? conn.getBundleName() : conn.getDisplayName(),
+                                    ? conn.getBundleName() : conn.getDisplayName(),
                                 TopologyNode.Kind.CONNECTOR);
 
-                        // Define the parent note
-                        TopologyNode parent = servers.get(conn.getLocation());
+                            // Define the parent note
+                            TopologyNode parent = servers.get(conn.getLocation());
 
-                        // Set the position
-                        int kx = size >= 6 ? 800 : (130 * size);
+                            // Set the position
+                            int kx = size >= 6 ? 800 : (130 * size);
 
-                        double hpos = conn.getLocation().startsWith(CONNECTOR_SERVER_LOCATION_PREFIX) ? Math.PI : 0.0;
+                            double hpos = conn.getLocation().
+                                startsWith(CONNECTOR_SERVER_LOCATION_PREFIX) ? Math.PI : 0.0;
 
-                        int x = (int) Math.round((Optional.ofNullable(parent).map(TopologyNode::getX).orElse(origX))
+                            int x = (int) Math.round((Optional.ofNullable(parent).map(TopologyNode::getX).orElse(origX))
                                 + kx * Math.cos(hpos + Math.PI * (item.getIndex() + 1) / size));
-                        int y = (int) Math.round((Optional.ofNullable(parent).map(TopologyNode::getY).orElse(origY))
+                            int y = (int) Math.round((Optional.ofNullable(parent).map(TopologyNode::getY).orElse(origY))
                                 + 100 * Math.sin(hpos + Math.PI * (item.getIndex() + 1) / size));
 
-                        topologynode.setConnectionDisplayName(conn.getBundleName());
-                        topologynode.setX(x);
-                        topologynode.setY(y);
+                            topologynode.setConnectionDisplayName(conn.getBundleName());
+                            topologynode.setX(x);
+                            topologynode.setY(y);
 
-                        connectors.put(String.class.cast(topologynode.getKey()), topologynode);
-                        item.add(topologyNodePanel("conn", topologynode, conn.isErrored()));
+                            connectors.put(String.class.cast(topologynode.getKey()), topologynode);
+                            item.add(topologyNodePanel("conn", topologynode, conn.isErrored()));
 
-                        // Update connections
-                        Map<Serializable, TopologyNode> remoteConnections;
-                        if (connections.containsKey(conn.getLocation())) {
-                            remoteConnections = connections.get(conn.getLocation());
-                        } else {
-                            remoteConnections = new HashMap<>();
-                            connections.put(conn.getLocation(), remoteConnections);
+                            // Update connections
+                            Map<Serializable, TopologyNode> remoteConnections;
+                            if (connections.containsKey(conn.getLocation())) {
+                                remoteConnections = connections.get(conn.getLocation());
+                            } else {
+                                remoteConnections = new HashMap<>();
+                                connections.put(conn.getLocation(), remoteConnections);
+                            }
+                            remoteConnections.put(conn.getKey(), topologynode);
                         }
-                        remoteConnections.put(conn.getKey(), topologynode);
-                    }
-                };
+                    };
 
-                conns.setOutputMarkupId(true);
-                item.add(conns);
-            }
-        };
+                    conns.setOutputMarkupId(true);
+                    item.add(conns);
+                }
+            };
 
         conns.setOutputMarkupId(true);
         body.add(conns);
@@ -384,7 +385,7 @@
                     }
                 });
 
-        ListView<String> resources = new ListView<String>("resources", connToBeProcessed) {
+        ListView<String> resources = new ListView<>("resources", connToBeProcessed) {
 
             private static final long serialVersionUID = 697862187148836038L;
 
@@ -392,8 +393,8 @@
             protected void populateItem(final ListItem<String> item) {
                 String connectorKey = item.getModelObject();
 
-                ListView<TopologyNode> innerListView = new ListView<TopologyNode>("resources",
-                        new ArrayList<>(connections.get(connectorKey).values())) {
+                ListView<TopologyNode> innerListView = new ListView<>("resources",
+                    new ArrayList<>(connections.get(connectorKey).values())) {
 
                     private static final long serialVersionUID = -3447760771863754342L;
 
@@ -411,9 +412,9 @@
                         double hpos = (parent == null || parent.getY() < syncopeTopologyNode.getY()) ? Math.PI : 0.0;
 
                         int x = (int) Math.round((Optional.ofNullable(parent).map(TopologyNode::getX).orElse(origX))
-                                + kx * Math.cos(hpos + Math.PI * (item.getIndex() + 1) / size));
+                            + kx * Math.cos(hpos + Math.PI * (item.getIndex() + 1) / size));
                         int y = (int) Math.round((Optional.ofNullable(parent).map(TopologyNode::getY).orElse(origY))
-                                + ky * Math.sin(hpos + Math.PI * (item.getIndex() + 1) / size));
+                            + ky * Math.sin(hpos + Math.PI * (item.getIndex() + 1) / size));
 
                         topologynode.setX(x);
                         topologynode.setY(y);
@@ -486,7 +487,7 @@
         newlyCreatedContainer.setOutputMarkupId(true);
         body.add(newlyCreatedContainer);
 
-        newlyCreated = new ListView<TopologyNode>("newlyCreated", new ArrayList<TopologyNode>()) {
+        newlyCreated = new ListView<>("newlyCreated", new ArrayList<>()) {
 
             private static final long serialVersionUID = 4949588177564901031L;
 
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java
index fec019e..983190c 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java
@@ -94,7 +94,7 @@
         propTaskModal.size(Modal.Size.Large);
         addOuterObject(propTaskModal);
 
-        schedTaskModal = new BaseModal<Serializable>(Constants.OUTER) {
+        schedTaskModal = new BaseModal<>(Constants.OUTER) {
 
             private static final long serialVersionUID = 389935548143327858L;
 
@@ -174,7 +174,7 @@
     private Fragment getSyncopeFragment(final PageReference pageRef) {
         Fragment fragment = new Fragment("actions", "syncopeActions", this);
 
-        AjaxLink<String> reload = new IndicatingOnConfirmAjaxLink<String>("reload", "connectors.confirm.reload", true) {
+        AjaxLink<String> reload = new IndicatingOnConfirmAjaxLink<>("reload", "connectors.confirm.reload", true) {
 
             private static final long serialVersionUID = -2075933173666007020L;
 
@@ -193,7 +193,7 @@
         fragment.add(reload);
         MetaDataRoleAuthorizationStrategy.authorize(reload, RENDER, IdMEntitlement.CONNECTOR_RELOAD);
 
-        AjaxLink<String> tasks = new IndicatingAjaxLink<String>("tasks") {
+        AjaxLink<String> tasks = new IndicatingAjaxLink<>("tasks") {
 
             private static final long serialVersionUID = 3776750333491622263L;
 
@@ -218,7 +218,7 @@
     private Fragment getLocationFragment(final TopologyNode node, final PageReference pageRef) {
         Fragment fragment = new Fragment("actions", "locationActions", this);
 
-        AjaxLink<String> create = new IndicatingAjaxLink<String>("create") {
+        AjaxLink<String> create = new IndicatingAjaxLink<>("create") {
 
             private static final long serialVersionUID = 3776750333491622263L;
 
@@ -231,7 +231,7 @@
                 modal.setFormModel(model);
 
                 target.add(modal.setContent(new ConnectorWizardBuilder(modelObject, pageRef).
-                        build(BaseModal.CONTENT_ID, AjaxWizard.Mode.CREATE)));
+                    build(BaseModal.CONTENT_ID, AjaxWizard.Mode.CREATE)));
 
                 modal.header(new Model<>(MessageFormat.format(getString("connector.new"), node.getKey())));
                 modal.show(true);
@@ -251,7 +251,7 @@
     private Fragment getConnectorFragment(final TopologyNode node, final PageReference pageRef) {
         Fragment fragment = new Fragment("actions", "connectorActions", this);
 
-        AjaxLink<String> delete = new IndicatingOnConfirmAjaxLink<String>("delete", true) {
+        AjaxLink<String> delete = new IndicatingOnConfirmAjaxLink<>("delete", true) {
 
             private static final long serialVersionUID = 3776750333491622263L;
 
@@ -272,7 +272,7 @@
         MetaDataRoleAuthorizationStrategy.authorize(delete, RENDER, IdMEntitlement.CONNECTOR_DELETE);
         fragment.add(delete);
 
-        AjaxLink<String> create = new IndicatingAjaxLink<String>("create") {
+        AjaxLink<String> create = new IndicatingAjaxLink<>("create") {
 
             private static final long serialVersionUID = 3776750333491622263L;
 
@@ -286,7 +286,7 @@
                 modal.setFormModel(model);
 
                 target.add(modal.setContent(new ResourceWizardBuilder(modelObject, pageRef).
-                        build(BaseModal.CONTENT_ID, AjaxWizard.Mode.CREATE)));
+                    build(BaseModal.CONTENT_ID, AjaxWizard.Mode.CREATE)));
 
                 modal.header(new Model<>(MessageFormat.format(getString("resource.new"), node.getKey())));
                 modal.show(true);
@@ -301,7 +301,7 @@
         MetaDataRoleAuthorizationStrategy.authorize(create, RENDER, IdMEntitlement.RESOURCE_CREATE);
         fragment.add(create);
 
-        AjaxLink<String> edit = new IndicatingAjaxLink<String>("edit") {
+        AjaxLink<String> edit = new IndicatingAjaxLink<>("edit") {
 
             private static final long serialVersionUID = 3776750333491622263L;
 
@@ -313,14 +313,14 @@
                 modal.setFormModel(model);
 
                 target.add(modal.setContent(new ConnectorWizardBuilder(connInstance, pageRef).
-                        build(BaseModal.CONTENT_ID,
-                                SyncopeConsoleSession.get().
-                                        owns(IdMEntitlement.CONNECTOR_UPDATE, connInstance.getAdminRealm())
-                                ? AjaxWizard.Mode.EDIT
-                                : AjaxWizard.Mode.READONLY)));
+                    build(BaseModal.CONTENT_ID,
+                        SyncopeConsoleSession.get().
+                            owns(IdMEntitlement.CONNECTOR_UPDATE, connInstance.getAdminRealm())
+                            ? AjaxWizard.Mode.EDIT
+                            : AjaxWizard.Mode.READONLY)));
 
                 modal.header(
-                        new Model<>(MessageFormat.format(getString("connector.edit"), connInstance.getDisplayName())));
+                    new Model<>(MessageFormat.format(getString("connector.edit"), connInstance.getDisplayName())));
                 modal.show(true);
             }
 
@@ -332,7 +332,7 @@
         MetaDataRoleAuthorizationStrategy.authorize(edit, RENDER, IdMEntitlement.CONNECTOR_READ);
         fragment.add(edit);
 
-        AjaxLink<String> history = new IndicatingAjaxLink<String>("history") {
+        AjaxLink<String> history = new IndicatingAjaxLink<>("history") {
 
             private static final long serialVersionUID = -1876519166660008562L;
 
@@ -340,13 +340,13 @@
             public void onClick(final AjaxRequestTarget target) {
                 ConnInstanceTO modelObject = ConnectorRestClient.read(node.getKey());
 
-                target.add(historyModal.setContent(new AuditHistoryModal<ConnInstanceTO>(
-                        historyModal,
-                        AuditElements.EventCategoryType.LOGIC,
-                        "ConnectorLogic",
-                        modelObject,
-                        IdMEntitlement.CONNECTOR_UPDATE,
-                        pageRef) {
+                target.add(historyModal.setContent(new AuditHistoryModal<>(
+                    historyModal,
+                    AuditElements.EventCategoryType.LOGIC,
+                    "ConnectorLogic",
+                    modelObject,
+                    IdMEntitlement.CONNECTOR_UPDATE,
+                    pageRef) {
 
                     private static final long serialVersionUID = -3225348282675513648L;
 
@@ -367,7 +367,7 @@
                 }));
 
                 historyModal.header(
-                        new Model<>(MessageFormat.format(getString("connector.menu.history"), node.getDisplayName())));
+                    new Model<>(MessageFormat.format(getString("connector.menu.history"), node.getDisplayName())));
 
                 historyModal.show(true);
             }
@@ -387,7 +387,7 @@
     private Fragment getResourceFragment(final TopologyNode node, final PageReference pageRef) {
         Fragment fragment = new Fragment("actions", "resourceActions", this);
 
-        AjaxLink<String> delete = new IndicatingOnConfirmAjaxLink<String>("delete", true) {
+        AjaxLink<String> delete = new IndicatingOnConfirmAjaxLink<>("delete", true) {
 
             private static final long serialVersionUID = 3776750333491622263L;
 
@@ -408,7 +408,7 @@
         MetaDataRoleAuthorizationStrategy.authorize(delete, RENDER, IdMEntitlement.RESOURCE_DELETE);
         fragment.add(delete);
 
-        AjaxLink<String> edit = new IndicatingAjaxLink<String>("edit") {
+        AjaxLink<String> edit = new IndicatingAjaxLink<>("edit") {
 
             private static final long serialVersionUID = 3776750333491622263L;
 
@@ -421,11 +421,11 @@
                 modal.setFormModel(model);
 
                 target.add(modal.setContent(new ResourceWizardBuilder(resource, pageRef).
-                        build(BaseModal.CONTENT_ID,
-                                SyncopeConsoleSession.get().
-                                        owns(IdMEntitlement.RESOURCE_UPDATE, connInstance.getAdminRealm())
-                                ? AjaxWizard.Mode.EDIT
-                                : AjaxWizard.Mode.READONLY)));
+                    build(BaseModal.CONTENT_ID,
+                        SyncopeConsoleSession.get().
+                            owns(IdMEntitlement.RESOURCE_UPDATE, connInstance.getAdminRealm())
+                            ? AjaxWizard.Mode.EDIT
+                            : AjaxWizard.Mode.READONLY)));
 
                 modal.header(new Model<>(MessageFormat.format(getString("resource.edit"), node.getKey())));
                 modal.show(true);
@@ -439,7 +439,7 @@
         MetaDataRoleAuthorizationStrategy.authorize(edit, RENDER, IdMEntitlement.RESOURCE_READ);
         fragment.add(edit);
 
-        AjaxLink<String> status = new IndicatingAjaxLink<String>("reconciliation") {
+        AjaxLink<String> status = new IndicatingAjaxLink<>("reconciliation") {
 
             private static final long serialVersionUID = 3776750333491622263L;
 
@@ -447,9 +447,9 @@
             public void onClick(final AjaxRequestTarget target) {
                 ResourceTO modelObject = ResourceRestClient.read(node.getKey());
                 target.add(propTaskModal.setContent(
-                        new ResourceStatusModal(propTaskModal, pageRef, modelObject)));
+                    new ResourceStatusModal(propTaskModal, pageRef, modelObject)));
                 propTaskModal.header(
-                        new Model<>(MessageFormat.format(getString("resource.reconciliation"), node.getKey())));
+                    new Model<>(MessageFormat.format(getString("resource.reconciliation"), node.getKey())));
                 propTaskModal.show(true);
             }
 
@@ -461,7 +461,7 @@
         MetaDataRoleAuthorizationStrategy.authorize(status, RENDER, IdRepoEntitlement.USER_UPDATE);
         fragment.add(status);
 
-        AjaxLink<String> provision = new IndicatingAjaxLink<String>("provision") {
+        AjaxLink<String> provision = new IndicatingAjaxLink<>("provision") {
 
             private static final long serialVersionUID = 3776750333491622263L;
 
@@ -471,7 +471,7 @@
                 ConnInstanceTO connInstance = ConnectorRestClient.read(resource.getConnector());
 
                 if (SyncopeConsoleSession.get().
-                        owns(IdMEntitlement.RESOURCE_UPDATE, connInstance.getAdminRealm())) {
+                    owns(IdMEntitlement.RESOURCE_UPDATE, connInstance.getAdminRealm())) {
 
                     provisionModal.addSubmitButton();
                 } else {
@@ -482,7 +482,7 @@
                 provisionModal.setFormModel(model);
 
                 target.add(provisionModal.setContent(
-                        new ResourceProvisionPanel(provisionModal, resource, connInstance.getAdminRealm(), pageRef)));
+                    new ResourceProvisionPanel(provisionModal, resource, connInstance.getAdminRealm(), pageRef)));
 
                 provisionModal.header(new Model<>(MessageFormat.format(getString("resource.edit"), node.getKey())));
                 provisionModal.show(true);
@@ -496,7 +496,7 @@
         MetaDataRoleAuthorizationStrategy.authorize(edit, RENDER, IdMEntitlement.RESOURCE_READ);
         fragment.add(provision);
 
-        AjaxLink<String> explore = new IndicatingAjaxLink<String>("explore") {
+        AjaxLink<String> explore = new IndicatingAjaxLink<>("explore") {
 
             private static final long serialVersionUID = 3776750333491622263L;
 
@@ -517,7 +517,7 @@
         MetaDataRoleAuthorizationStrategy.authorize(explore, RENDER, IdMEntitlement.RESOURCE_LIST_CONNOBJECT);
         fragment.add(explore);
 
-        AjaxLink<String> propagation = new IndicatingAjaxLink<String>("propagation") {
+        AjaxLink<String> propagation = new IndicatingAjaxLink<>("propagation") {
 
             private static final long serialVersionUID = 3776750333491622263L;
 
@@ -525,9 +525,9 @@
             @SuppressWarnings("unchecked")
             public void onClick(final AjaxRequestTarget target) {
                 target.add(propTaskModal.setContent(
-                        new PropagationTasks(propTaskModal, node.getKey(), pageRef)));
+                    new PropagationTasks(propTaskModal, node.getKey(), pageRef)));
                 propTaskModal.header(
-                        new Model<>(MessageFormat.format(getString("task.propagation.list"), node.getKey())));
+                    new Model<>(MessageFormat.format(getString("task.propagation.list"), node.getKey())));
                 propTaskModal.show(true);
             }
 
@@ -539,7 +539,7 @@
         MetaDataRoleAuthorizationStrategy.authorize(propagation, RENDER, IdRepoEntitlement.TASK_LIST);
         fragment.add(propagation);
 
-        AjaxLink<String> pull = new IndicatingAjaxLink<String>("pull") {
+        AjaxLink<String> pull = new IndicatingAjaxLink<>("pull") {
 
             private static final long serialVersionUID = 3776750333491622263L;
 
@@ -558,7 +558,7 @@
         MetaDataRoleAuthorizationStrategy.authorize(pull, RENDER, IdRepoEntitlement.TASK_LIST);
         fragment.add(pull);
 
-        AjaxLink<String> push = new IndicatingAjaxLink<String>("push") {
+        AjaxLink<String> push = new IndicatingAjaxLink<>("push") {
 
             private static final long serialVersionUID = 3776750333491622263L;
 
@@ -577,7 +577,7 @@
         MetaDataRoleAuthorizationStrategy.authorize(push, RENDER, IdRepoEntitlement.TASK_LIST);
         fragment.add(push);
 
-        AjaxLink<String> history = new IndicatingAjaxLink<String>("history") {
+        AjaxLink<String> history = new IndicatingAjaxLink<>("history") {
 
             private static final long serialVersionUID = -1876519166660008562L;
 
@@ -585,13 +585,13 @@
             public void onClick(final AjaxRequestTarget target) {
                 ResourceTO modelObject = ResourceRestClient.read(node.getKey());
 
-                target.add(historyModal.setContent(new AuditHistoryModal<ResourceTO>(
-                        historyModal,
-                        AuditElements.EventCategoryType.LOGIC,
-                        "ResourceLogic",
-                        modelObject,
-                        IdMEntitlement.RESOURCE_UPDATE,
-                        pageRef) {
+                target.add(historyModal.setContent(new AuditHistoryModal<>(
+                    historyModal,
+                    AuditElements.EventCategoryType.LOGIC,
+                    "ResourceLogic",
+                    modelObject,
+                    IdMEntitlement.RESOURCE_UPDATE,
+                    pageRef) {
 
                     private static final long serialVersionUID = -3712506022627033811L;
 
@@ -612,7 +612,7 @@
                 }));
 
                 historyModal.header(
-                        new Model<>(MessageFormat.format(getString("resource.menu.history"), node.getDisplayName())));
+                    new Model<>(MessageFormat.format(getString("resource.menu.history"), node.getDisplayName())));
 
                 historyModal.show(true);
             }
@@ -627,7 +627,7 @@
         fragment.add(history);
 
         // [SYNCOPE-1161] - Option to clone a resource
-        AjaxLink<String> clone = new IndicatingOnConfirmAjaxLink<String>("clone", "confirmClone", true) {
+        AjaxLink<String> clone = new IndicatingOnConfirmAjaxLink<>("clone", "confirmClone", true) {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
@@ -657,11 +657,11 @@
 
                     // refresh Topology
                     send(pageRef.getPage(), Broadcast.DEPTH, new AbstractResourceWizardBuilder.CreateEvent(
-                            resource.getKey(),
-                            resource.getKey(),
-                            TopologyNode.Kind.RESOURCE,
-                            resource.getConnector(),
-                            target));
+                        resource.getKey(),
+                        resource.getKey(),
+                        TopologyNode.Kind.RESOURCE,
+                        resource.getConnector(),
+                        target));
 
                     SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
                     toggle(target, false);
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/list/ConnConfPropertyListView.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/list/ConnConfPropertyListView.java
index 023bb8c..0a105c5 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/list/ConnConfPropertyListView.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/list/ConnConfPropertyListView.java
@@ -151,7 +151,7 @@
                 withOffStyle(BootstrapToggleConfig.Style.danger).
                 withSize(BootstrapToggleConfig.Size.mini);
 
-        return new BootstrapToggle("externalAction", new PropertyModel<Boolean>(property, "overridable"), config) {
+        return new BootstrapToggle("externalAction", new PropertyModel<>(property, "overridable"), config) {
 
             private static final long serialVersionUID = -875219845189261873L;
 
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/widgets/RemediationsWidget.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/widgets/RemediationsWidget.java
index 663219d..085a4ef 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/widgets/RemediationsWidget.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/widgets/RemediationsWidget.java
@@ -93,7 +93,7 @@
 
     @Override
     protected IModel<List<RemediationTO>> getLatestAlerts() {
-        return new ListModel<RemediationTO>() {
+        return new ListModel<>() {
 
             private static final long serialVersionUID = 541491929575585613L;
 
@@ -101,10 +101,10 @@
             public List<RemediationTO> getObject() {
                 List<RemediationTO> updatedRemediations;
                 if (SyncopeConsoleSession.get().owns(IdMEntitlement.REMEDIATION_LIST)
-                        && SyncopeConsoleSession.get().owns(IdMEntitlement.REMEDIATION_READ)) {
+                    && SyncopeConsoleSession.get().owns(IdMEntitlement.REMEDIATION_READ)) {
 
                     updatedRemediations = RemediationRestClient.getRemediations(1,
-                            MAX_SIZE, new SortParam<>("instant", true));
+                        MAX_SIZE, new SortParam<>("instant", true));
                 } else {
                     updatedRemediations = List.of();
                 }
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/CSVPullWizardBuilder.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/CSVPullWizardBuilder.java
index 3e21b1e..3182de3 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/CSVPullWizardBuilder.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/CSVPullWizardBuilder.java
@@ -181,7 +181,7 @@
             keyColumn.setRequired(true);
             add(keyColumn);
 
-            keyColumn.add(new ListView<String>("columns", columnsModel) {
+            keyColumn.add(new ListView<>("columns", columnsModel) {
 
                 private static final long serialVersionUID = -9112553137618363167L;
 
@@ -231,25 +231,25 @@
 
         private static final long serialVersionUID = -8954789648303078732L;
 
-        private final IModel<List<String>> pullActions = new LoadableDetachableModel<List<String>>() {
+        private final IModel<List<String>> pullActions = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 4659376149825914247L;
 
             @Override
             protected List<String> load() {
                 return ImplementationRestClient.list(IdMImplementationType.PULL_ACTIONS).stream().
-                        map(EntityTO::getKey).sorted().collect(Collectors.toList());
+                    map(EntityTO::getKey).sorted().collect(Collectors.toList());
             }
         };
 
-        private final IModel<List<String>> pullCorrelationRules = new LoadableDetachableModel<List<String>>() {
+        private final IModel<List<String>> pullCorrelationRules = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 4659376149825914247L;
 
             @Override
             protected List<String> load() {
                 return ImplementationRestClient.list(IdMImplementationType.PULL_CORRELATION_RULE).stream().
-                        map(EntityTO::getKey).sorted().collect(Collectors.toList());
+                    map(EntityTO::getKey).sorted().collect(Collectors.toList());
             }
         };
 
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/CSVPushWizardBuilder.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/CSVPushWizardBuilder.java
index b90a7ec..00d5d45 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/CSVPushWizardBuilder.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/CSVPushWizardBuilder.java
@@ -107,25 +107,25 @@
 
         private static final long serialVersionUID = -2747583614435078452L;
 
-        private final IModel<List<String>> propActions = new LoadableDetachableModel<List<String>>() {
+        private final IModel<List<String>> propActions = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 4659376149825914247L;
 
             @Override
             protected List<String> load() {
                 return ImplementationRestClient.list(IdMImplementationType.PROPAGATION_ACTIONS).stream().
-                        map(EntityTO::getKey).sorted().collect(Collectors.toList());
+                    map(EntityTO::getKey).sorted().collect(Collectors.toList());
             }
         };
 
-        private final IModel<List<String>> pushActions = new LoadableDetachableModel<List<String>>() {
+        private final IModel<List<String>> pushActions = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 4659376149825914247L;
 
             @Override
             protected List<String> load() {
                 return ImplementationRestClient.list(IdMImplementationType.PUSH_ACTIONS).stream().
-                        map(EntityTO::getKey).sorted().collect(Collectors.toList());
+                    map(EntityTO::getKey).sorted().collect(Collectors.toList());
             }
         };
 
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountCredentialsPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountCredentialsPanel.java
index 5044dea..64c13bf 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountCredentialsPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountCredentialsPanel.java
@@ -100,7 +100,7 @@
                 withOffStyle(BootstrapToggleConfig.Style.danger).
                 withSize(BootstrapToggleConfig.Size.mini);
 
-        return new BootstrapToggle("externalAction", new PropertyModel<Boolean>(property, "overridable"), config) {
+        return new BootstrapToggle("externalAction", new PropertyModel<>(property, "overridable"), config) {
 
             private static final long serialVersionUID = -875219845189261873L;
 
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountDetailsPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountDetailsPanel.java
index c303f08..92b812e 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountDetailsPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountDetailsPanel.java
@@ -32,6 +32,7 @@
 import org.apache.syncope.client.ui.commons.markup.html.form.AjaxTextFieldPanel;
 import org.apache.syncope.common.lib.to.ConnObjectTO;
 import org.apache.syncope.common.lib.to.LinkedAccountTO;
+import org.apache.syncope.common.lib.to.ResourceTO;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.syncope.common.rest.api.beans.ConnObjectTOQuery;
 import org.apache.wicket.Component;
@@ -73,7 +74,7 @@
                 filter(resource -> resource.getProvision(AnyTypeKind.USER.name()).isPresent()
                 && resource.getProvision(AnyTypeKind.USER.name()).get().getMapping() != null
                 && !resource.getProvision(AnyTypeKind.USER.name()).get().getMapping().getItems().isEmpty()).
-                map(resource -> resource.getKey()).
+                map(ResourceTO::getKey).
                 collect(Collectors.toList()));
         dropdownResourceField.setOutputMarkupId(true);
         dropdownResourceField.addRequiredLabel();
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountPlainAttrsPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountPlainAttrsPanel.java
index 2a8374c..3b16078 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountPlainAttrsPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountPlainAttrsPanel.java
@@ -120,7 +120,7 @@
                 withOffStyle(BootstrapToggleConfig.Style.danger).
                 withSize(BootstrapToggleConfig.Size.mini);
 
-        return new BootstrapToggle("externalAction", new PropertyModel<Boolean>(property, "overridable"), config) {
+        return new BootstrapToggle("externalAction", new PropertyModel<>(property, "overridable"), config) {
 
             private static final long serialVersionUID = -875219845189261873L;
 
@@ -240,7 +240,7 @@
 
             super(id);
 
-            add(new ListView<Attr>("schemas", attrTOs) {
+            add(new ListView<>("schemas", attrTOs) {
 
                 private static final long serialVersionUID = 9101744072914090143L;
 
@@ -250,9 +250,9 @@
                     final boolean isMultivalue = schemas.get(attrTO.getSchema()).isMultivalue();
 
                     AbstractFieldPanel<?> panel = setPanel(
-                            schemas,
-                            item,
-                            !linkedAccountTO.getPlainAttr(attrTO.getSchema()).isPresent());
+                        schemas,
+                        item,
+                        !linkedAccountTO.getPlainAttr(attrTO.getSchema()).isPresent());
 
                     panel.showExternAction(checkboxToggle(attrTO, panel, isMultivalue));
                 }
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountPrivilegesPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountPrivilegesPanel.java
index c33351a..d9898b4 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountPrivilegesPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountPrivilegesPanel.java
@@ -23,6 +23,7 @@
 import org.apache.syncope.client.console.rest.ApplicationRestClient;
 import org.apache.syncope.client.ui.commons.markup.html.form.AjaxPalettePanel;
 import org.apache.syncope.common.lib.to.LinkedAccountTO;
+import org.apache.syncope.common.lib.to.PrivilegeTO;
 import org.apache.wicket.extensions.wizard.WizardStep;
 import org.apache.wicket.model.LoadableDetachableModel;
 import org.apache.wicket.model.PropertyModel;
@@ -38,18 +39,18 @@
         super();
         setOutputMarkupId(true);
 
-        final LoadableDetachableModel<List<String>> availablePrivilges = new LoadableDetachableModel<List<String>>() {
+        final LoadableDetachableModel<List<String>> availablePrivilges = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
             @Override
             protected List<String> load() {
                 return applicationRestClient.list().stream().
-                        flatMap(app -> app.getPrivileges().stream()).
-                        map(privilege -> privilege.getKey()).
-                        distinct().
-                        sorted().
-                        collect(Collectors.toList());
+                    flatMap(app -> app.getPrivileges().stream()).
+                    map(PrivilegeTO::getKey).
+                    distinct().
+                    sorted().
+                    collect(Collectors.toList());
             }
         };
         AjaxPalettePanel<String> privilegesPanel = new AjaxPalettePanel.Builder<String>().
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/MergeLinkedAccountsResourcesPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/MergeLinkedAccountsResourcesPanel.java
index ce208f9..a5bc48b 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/MergeLinkedAccountsResourcesPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/MergeLinkedAccountsResourcesPanel.java
@@ -111,7 +111,7 @@
         @Override
         protected ActionsPanel<ResourceTO> getActions(final IModel<ResourceTO> model) {
             final ActionsPanel<ResourceTO> panel = super.getActions(model);
-            panel.add(new ActionLink<ResourceTO>() {
+            panel.add(new ActionLink<>() {
 
                 private static final long serialVersionUID = -7978723352517770644L;
 
@@ -119,19 +119,19 @@
                 public void onClick(final AjaxRequestTarget target, final ResourceTO resource) {
                     MergeLinkedAccountsWizardModel model = MergeLinkedAccountsResourcesPanel.this.wizardModel;
                     String connObjectKeyValue = ResourceRestClient.getConnObjectKeyValue(
-                            resource.getKey(),
-                            model.getMergingUser().getType(),
-                            model.getMergingUser().getKey());
+                        resource.getKey(),
+                        model.getMergingUser().getType(),
+                        model.getMergingUser().getKey());
                     if (connObjectKeyValue != null) {
                         model.setResource(resource);
                         String tableId = MergeLinkedAccountsResourcesPanel.this.
-                                get("resources:container:content:searchContainer:resultTable"
-                                        + ":tablePanel:groupForm:checkgroup:dataTable").
-                                getMarkupId();
+                            get("resources:container:content:searchContainer:resultTable"
+                                + ":tablePanel:groupForm:checkgroup:dataTable").
+                            getMarkupId();
                         String js = "$('#" + tableId + "').removeClass('active');";
                         js += "$('#" + tableId + " tbody tr td div').filter(function() "
-                                + "{return $(this).text() === \"" + resource.getKey() + "\";})"
-                                + ".parent().parent().addClass('active');";
+                            + "{return $(this).text() === \"" + resource.getKey() + "\";})"
+                            + ".parent().parent().addClass('active');";
                         target.prependJavaScript(js);
 
                     } else {
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorConfPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorConfPanel.java
index 8205605..3188230 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorConfPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorConfPanel.java
@@ -35,7 +35,7 @@
         super(connInstanceTO);
         this.bundles = bundles;
 
-        model = new LoadableDetachableModel<List<ConnConfProperty>>() {
+        model = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = -2965284931860212687L;
 
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorDetailsPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorDetailsPanel.java
index e7ba955..f9b2a85 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorDetailsPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ConnectorDetailsPanel.java
@@ -34,6 +34,7 @@
 import org.apache.syncope.common.lib.to.ConnBundleTO;
 import org.apache.syncope.common.lib.to.ConnInstanceTO;
 import org.apache.syncope.common.lib.to.ConnPoolConfTO;
+import org.apache.syncope.common.lib.to.RealmTO;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.extensions.ajax.markup.html.autocomplete.AutoCompleteSettings;
 import org.apache.wicket.extensions.wizard.WizardStep;
@@ -66,7 +67,7 @@
                         : RealmRestClient.list()).
                         stream().filter(realm -> SyncopeConsoleSession.get().getAuthRealms().stream().anyMatch(
                         authRealm -> realm.getFullPath().startsWith(authRealm))).
-                        map(item -> item.getFullPath()).collect(Collectors.toList()).iterator();
+                        map(RealmTO::getFullPath).collect(Collectors.toList()).iterator();
             }
         };
 
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceConnConfPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceConnConfPanel.java
index 08d7adc..e86481c 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceConnConfPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceConnConfPanel.java
@@ -38,7 +38,7 @@
         super(resourceTO);
         this.createFlag = createFlag;
 
-        model = new LoadableDetachableModel<List<ConnConfProperty>>() {
+        model = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = -2965284931860212687L;
 
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceDetailsPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceDetailsPanel.java
index 2023c99..94ae8b0 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceDetailsPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceDetailsPanel.java
@@ -45,25 +45,25 @@
 
     private static final long serialVersionUID = -7982691107029848579L;
 
-    private final IModel<List<String>> propagationActions = new LoadableDetachableModel<List<String>>() {
+    private final IModel<List<String>> propagationActions = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = 5275935387613157437L;
 
         @Override
         protected List<String> load() {
             return ImplementationRestClient.list(IdMImplementationType.PROPAGATION_ACTIONS).stream().
-                    map(EntityTO::getKey).sorted().collect(Collectors.toList());
+                map(EntityTO::getKey).sorted().collect(Collectors.toList());
         }
     };
 
-    private final IModel<List<String>> provisionSorters = new LoadableDetachableModel<List<String>>() {
+    private final IModel<List<String>> provisionSorters = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = 4659376149825914247L;
 
         @Override
         protected List<String> load() {
             return ImplementationRestClient.list(IdMImplementationType.PROVISION_SORTER).stream().
-                    map(EntityTO::getKey).sorted().collect(Collectors.toList());
+                map(EntityTO::getKey).sorted().collect(Collectors.toList());
         }
     };
 
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceMappingPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceMappingPanel.java
index 9b882b5..de84e72 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceMappingPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceMappingPanel.java
@@ -35,7 +35,6 @@
 import org.apache.syncope.common.lib.SyncopeConstants;
 import org.apache.syncope.common.lib.to.AnyTypeClassTO;
 import org.apache.syncope.common.lib.to.AnyTypeTO;
-import org.apache.syncope.common.lib.to.ItemTO;
 import org.apache.syncope.common.lib.to.ResourceTO;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.syncope.common.lib.types.MappingPurpose;
@@ -82,7 +81,7 @@
         super(id,
                 itemTransformers,
                 jexlTransformers,
-                new ListModel<ItemTO>(provision.getItems()),
+            new ListModel<>(provision.getItems()),
                 resourceTO.getConnector() != null,
                 MappingPurpose.BOTH);
 
@@ -90,17 +89,17 @@
 
         this.provision = provision;
 
-        extAttrNames = new LoadableDetachableModel<List<String>>() {
+        extAttrNames = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
             @Override
             protected List<String> load() {
                 return ConnectorRestClient.getExtAttrNames(
-                        adminRealm,
-                        provision.getObjectClass(),
-                        resourceTO.getConnector(),
-                        resourceTO.getConfOverride());
+                    adminRealm,
+                    provision.getObjectClass(),
+                    resourceTO.getConnector(),
+                    resourceTO.getConfOverride());
             }
         };
     }
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java
index 34305fc..ec8ba12 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java
@@ -84,22 +84,22 @@
 
         wizard = new ProvisionWizardBuilder(resourceTO, adminRealm, pageRef);
 
-        ListViewPanel.Builder<ResourceProvision> builder = new ListViewPanel.Builder<ResourceProvision>(
-                ResourceProvision.class, pageRef) {
+        ListViewPanel.Builder<ResourceProvision> builder = new ListViewPanel.Builder<>(
+            ResourceProvision.class, pageRef) {
 
             private static final long serialVersionUID = 4907732721283972943L;
 
             @Override
             protected ResourceProvision getActualItem(
-                    final ResourceProvision item, final List<ResourceProvision> list) {
+                final ResourceProvision item, final List<ResourceProvision> list) {
 
                 return Optional.ofNullable(item)
-                        .map(resourceProvision -> list.stream()
+                    .map(resourceProvision -> list.stream()
                         .filter(in -> ((resourceProvision.getKey() == null && in.getKey() == null)
-                        || (in.getKey() != null && in.getKey().equals(resourceProvision.getKey())))
-                        && ((resourceProvision.getAnyType() == null && in.getAnyType() == null)
-                        || (in.getAnyType() != null && in.getAnyType().equals(resourceProvision.getAnyType())))).
-                        findAny().orElse(null)).orElse(null);
+                            || (in.getKey() != null && in.getKey().equals(resourceProvision.getKey())))
+                            && ((resourceProvision.getAnyType() == null && in.getAnyType() == null)
+                            || (in.getAnyType() != null && in.getAnyType().equals(resourceProvision.getAnyType())))).
+                            findAny().orElse(null)).orElse(null);
             }
 
             @Override
@@ -143,7 +143,7 @@
         builder.includes("anyType", "objectClass", "auxClasses");
         builder.setReuseItem(false);
 
-        builder.addAction(new ActionLink<ResourceProvision>() {
+        builder.addAction(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435504L;
 
@@ -151,10 +151,10 @@
             public void onClick(final AjaxRequestTarget target, final ResourceProvision provision) {
                 try {
                     send(ResourceProvisionPanel.this, Broadcast.DEPTH,
-                            new AjaxWizard.NewItemActionEvent<>(provision, 1, target).setResourceModel(
-                                    new StringResourceModel("inner.provision.mapping",
-                                            ResourceProvisionPanel.this,
-                                            Model.of(provision))));
+                        new AjaxWizard.NewItemActionEvent<>(provision, 1, target).setResourceModel(
+                            new StringResourceModel("inner.provision.mapping",
+                                ResourceProvisionPanel.this,
+                                Model.of(provision))));
                 } catch (SyncopeClientException e) {
                     LOG.error("While contacting resource", e);
                     SyncopeConsoleSession.get().onException(e);
@@ -162,7 +162,7 @@
                 }
             }
         }, ActionLink.ActionType.MAPPING, IdMEntitlement.RESOURCE_READ).
-                addAction(new ActionLink<ResourceProvision>() {
+                addAction(new ActionLink<>() {
 
                     private static final long serialVersionUID = -7780999687733432439L;
 
@@ -173,13 +173,13 @@
                             SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
                         } catch (Exception e) {
                             LOG.error("While setting latest sync token for {}/{}",
-                                    resourceTO.getKey(), provision.getAnyType(), e);
+                                resourceTO.getKey(), provision.getAnyType(), e);
                             SyncopeConsoleSession.get().onException(e);
                         }
                         ((BaseWebPage) pageRef.getPage()).getNotificationPanel().refresh(target);
                     }
                 }, ActionLink.ActionType.SET_LATEST_SYNC_TOKEN, IdMEntitlement.RESOURCE_UPDATE).
-                addAction(new ActionLink<ResourceProvision>() {
+                addAction(new ActionLink<>() {
 
                     private static final long serialVersionUID = -7780999687733432439L;
 
@@ -190,13 +190,13 @@
                             SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
                         } catch (Exception e) {
                             LOG.error("While removing sync token for {}/{}",
-                                    resourceTO.getKey(), provision.getAnyType(), e);
+                                resourceTO.getKey(), provision.getAnyType(), e);
                             SyncopeConsoleSession.get().onException(e);
                         }
                         ((BaseWebPage) pageRef.getPage()).getNotificationPanel().refresh(target);
                     }
                 }, ActionLink.ActionType.REMOVE_SYNC_TOKEN, IdMEntitlement.RESOURCE_UPDATE).
-                addAction(new ActionLink<ResourceProvision>() {
+                addAction(new ActionLink<>() {
 
                     private static final long serialVersionUID = -3722207913631435544L;
 
@@ -218,14 +218,14 @@
         list = builder.build("provision");
         list.setReadOnly(!SyncopeConsoleSession.get().owns(IdMEntitlement.RESOURCE_UPDATE, adminRealm));
 
-        addAjaxLink = new AjaxLink<ResourceProvision>("add") {
+        addAjaxLink = new AjaxLink<>("add") {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
             @Override
             public void onClick(final AjaxRequestTarget target) {
                 send(ResourceProvisionPanel.this, Broadcast.BREADTH,
-                        new ActionLinksTogglePanel.ActionLinkToggleCloseEventPayload(target));
+                    new ActionLinksTogglePanel.ActionLinkToggleCloseEventPayload(target));
                 objectTypeTogglePanel.setHeaderLabel(target);
                 objectTypeTogglePanel.toggle(target, true);
             }
@@ -299,15 +299,15 @@
     }
 
     private LoadableDetachableModel<List<String>> getAnyTypes() {
-        return new LoadableDetachableModel<List<String>>() {
+        return new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
             @Override
             protected List<String> load() {
                 List<String> anyTypes = AnyTypeRestClient.list().stream().
-                        filter(anyType -> resourceTO.getProvision(anyType).isEmpty()).
-                        collect(Collectors.toList());
+                    filter(anyType -> resourceTO.getProvision(anyType).isEmpty()).
+                    collect(Collectors.toList());
                 if (resourceTO.getOrgUnit() == null) {
                     anyTypes.add(SyncopeConstants.REALM_ANYTYPE);
                 }
diff --git a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceSecurityPanel.java b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceSecurityPanel.java
index fe37aa9..e339bba 100644
--- a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceSecurityPanel.java
+++ b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceSecurityPanel.java
@@ -39,47 +39,47 @@
 
     private static final long serialVersionUID = -7982691107029848579L;
 
-    private final IModel<Map<String, String>> passwordPolicies = new LoadableDetachableModel<Map<String, String>>() {
+    private final IModel<Map<String, String>> passwordPolicies = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = 5275935387613157437L;
 
         @Override
         protected Map<String, String> load() {
             return PolicyRestClient.list(PolicyType.PASSWORD).stream().
-                    collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
+                collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
         }
     };
 
-    private final IModel<Map<String, String>> accountPolicies = new LoadableDetachableModel<Map<String, String>>() {
+    private final IModel<Map<String, String>> accountPolicies = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = -2012833443695917883L;
 
         @Override
         protected Map<String, String> load() {
             return PolicyRestClient.list(PolicyType.ACCOUNT).stream().
-                    collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
+                collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
         }
     };
 
-    private final IModel<Map<String, String>> pullPolicies = new LoadableDetachableModel<Map<String, String>>() {
+    private final IModel<Map<String, String>> pullPolicies = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = -2012833443695917883L;
 
         @Override
         protected Map<String, String> load() {
             return PolicyRestClient.list(PolicyType.PULL).stream().
-                    collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
+                collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
         }
     };
 
-    private final IModel<Map<String, String>> pushPolicies = new LoadableDetachableModel<Map<String, String>>() {
+    private final IModel<Map<String, String>> pushPolicies = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = 9089911876466472133L;
 
         @Override
         protected Map<String, String> load() {
             return PolicyRestClient.list(PolicyType.PUSH).stream().
-                    collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
+                collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
         }
     };
 
diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/BaseLogin.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/BaseLogin.java
index 44c4e23..f67bdd9 100644
--- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/BaseLogin.java
+++ b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/BaseLogin.java
@@ -82,7 +82,7 @@
 
     protected String notificationLevel;
 
-    private final LoadableDetachableModel<List<String>> domains = new LoadableDetachableModel<List<String>>() {
+    private final LoadableDetachableModel<List<String>> domains = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = 4659376149825914247L;
 
@@ -183,7 +183,7 @@
         form.setDefaultButton(submitButton);
 
         List<Panel> ssoLoginFormPanels = getSSOLoginFormPanels();
-        ListView<Panel> ssoLogins = new ListView<Panel>("ssoLogins", ssoLoginFormPanels) {
+        ListView<Panel> ssoLogins = new ListView<>("ssoLogins", ssoLoginFormPanels) {
 
             private static final long serialVersionUID = -9180479401817023838L;
 
@@ -250,7 +250,7 @@
             super(id, SUPPORTED_LOCALES);
 
             setChoiceRenderer(new LocaleRenderer());
-            setModel(new IModel<Locale>() {
+            setModel(new IModel<>() {
 
                 private static final long serialVersionUID = -6985170095629312963L;
 
diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/DomainDropDown.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/DomainDropDown.java
index 236a882..f195194 100644
--- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/DomainDropDown.java
+++ b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/DomainDropDown.java
@@ -33,7 +33,7 @@
 
     public DomainDropDown(final String id, final IModel<List<String>> domains) {
         super(id, domains);
-        setModel(new IModel<String>() {
+        setModel(new IModel<>() {
 
             private static final long serialVersionUID = -1124206668056084806L;
 
diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxCheckBoxPanel.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxCheckBoxPanel.java
index 383d20d..a398e9b 100644
--- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxCheckBoxPanel.java
+++ b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxCheckBoxPanel.java
@@ -62,7 +62,7 @@
 
     @Override
     public FieldPanel<Boolean> setNewModel(final List<Serializable> list) {
-        setNewModel(new Model<Boolean>() {
+        setNewModel(new Model<>() {
 
             private static final long serialVersionUID = 527651414610325237L;
 
@@ -92,7 +92,7 @@
     @SuppressWarnings("rawtypes")
     @Override
     public FieldPanel<Boolean> setNewModel(final ListItem item) {
-        IModel<Boolean> model = new Model<Boolean>() {
+        IModel<Boolean> model = new Model<>() {
 
             private static final long serialVersionUID = 6799404673615637845L;
 
@@ -118,7 +118,7 @@
             @SuppressWarnings("unchecked")
             public void setObject(final Boolean object) {
                 item.setModelObject(Optional.ofNullable(object)
-                        .map(Object::toString).orElseGet(Boolean.FALSE::toString));
+                    .map(Object::toString).orElseGet(Boolean.FALSE::toString));
             }
         };
 
diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxGrid.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxGrid.java
index 8bd45be..2190f80 100644
--- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxGrid.java
+++ b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxGrid.java
@@ -75,7 +75,7 @@
         newCols.addAll(columns);
         newCols.add(new AjaxGridActionsColumn<>(new Model<>("Actions")));
 
-        dataTable = new EditableDataTable<Pair<K, V>, S>("dataTable", newCols, dataProvider, rowsPerPage, null) {
+        dataTable = new EditableDataTable<>("dataTable", newCols, dataProvider, rowsPerPage, null) {
 
             protected static final long serialVersionUID = 1L;
 
@@ -126,7 +126,7 @@
             final EditableDataTable<Pair<K, V>, S> dataTable,
             final IEditableDataProvider<Pair<K, V>, S> dataProvider) {
 
-        return new AjaxGridBottomToolbar<Pair<K, V>, S>(dataTable) {
+        return new AjaxGridBottomToolbar<>(dataTable) {
 
             protected static final long serialVersionUID = 1L;
 
diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxGridFieldPanel.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxGridFieldPanel.java
index ce2153e..fbf9ecf 100644
--- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxGridFieldPanel.java
+++ b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxGridFieldPanel.java
@@ -44,12 +44,12 @@
 
         add(new Label(AbstractFieldPanel.LABEL, new ResourceModel(name, name)));
 
-        add(new AjaxGrid<K, V, S>(
-                "grid",
-                getColumns(),
-                new EditableListDataProvider<Pair<K, V>, S>(model.getObject().entrySet().stream().
-                        map(entry -> MutablePair.of(entry.getKey(), entry.getValue())).
-                        collect(Collectors.toList())), 10) {
+        add(new AjaxGrid<>(
+            "grid",
+            getColumns(),
+            new EditableListDataProvider<>(model.getObject().entrySet().stream().
+                map(entry -> MutablePair.of(entry.getKey(), entry.getValue())).
+                collect(Collectors.toList())), 10) {
 
             private static final long serialVersionUID = 1L;
 
diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxPalettePanel.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxPalettePanel.java
index c6c2250..8806ce2 100644
--- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxPalettePanel.java
+++ b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxPalettePanel.java
@@ -129,8 +129,8 @@
     }
 
     protected Palette<T> buildPalette(final IModel<List<T>> model, final Builder<T> builder) {
-        return new NonI18nPalette<T>(
-                "paletteField", model, choicesModel, builder.renderer, 8, builder.allowOrder, builder.allowMoveAll) {
+        return new NonI18nPalette<>(
+            "paletteField", model, choicesModel, builder.renderer, 8, builder.allowOrder, builder.allowMoveAll) {
 
             private static final long serialVersionUID = -3074655279011678437L;
 
@@ -146,7 +146,7 @@
 
             @Override
             protected Recorder<T> newRecorderComponent() {
-                Recorder<T> recorder = new Recorder<T>("recorder", this) {
+                Recorder<T> recorder = new Recorder<>("recorder", this) {
 
                     private static final long serialVersionUID = -9169109967480083523L;
 
@@ -173,7 +173,7 @@
 
                         // reduce number of method calls by building a lookup table
                         Map<T, String> idForChoice = choices.stream().collect(Collectors.toMap(
-                                Function.identity(), choice -> renderer.getIdValue(choice, 0), (c1, c2) -> c1));
+                            Function.identity(), choice -> renderer.getIdValue(choice, 0), (c1, c2) -> c1));
 
                         List<T> selected = new ArrayList<>(choices.size());
                         builder.idExtractor.apply(getValue()).forEach(id -> {
@@ -205,8 +205,8 @@
             @Override
             protected Map<String, String> getAdditionalAttributes(final Object choice) {
                 return builder.additionalAttributes == null
-                        ? super.getAdditionalAttributes(choice)
-                        : builder.additionalAttributes.apply(choice);
+                    ? super.getAdditionalAttributes(choice)
+                    : builder.additionalAttributes.apply(choice);
             }
         };
     }
diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxSpinnerFieldPanel.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxSpinnerFieldPanel.java
index 125a936..838ad5b 100644
--- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxSpinnerFieldPanel.java
+++ b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxSpinnerFieldPanel.java
@@ -59,7 +59,7 @@
 
         super(id, name, model);
 
-        field = new AjaxSpinner<T>("spinner", model, options, reference) {
+        field = new AjaxSpinner<>("spinner", model, options, reference) {
 
             private static final long serialVersionUID = -3624755213720060594L;
 
@@ -93,7 +93,7 @@
 
     @Override
     public AjaxSpinnerFieldPanel<T> setNewModel(final List<Serializable> list) {
-        setNewModel(new Model<T>() {
+        setNewModel(new Model<>() {
 
             private static final long serialVersionUID = 527651414610325237L;
 
@@ -102,19 +102,19 @@
                 T value = null;
 
                 if (list != null && !list.isEmpty()
-                        && list.get(0) != null && StringUtils.isNotBlank(list.get(0).toString())) {
+                    && list.get(0) != null && StringUtils.isNotBlank(list.get(0).toString())) {
 
                     value = reference.equals(Integer.class)
-                            ? reference.cast(NumberUtils.toInt(list.get(0).toString()))
-                            : reference.equals(Long.class)
-                            ? reference.cast(NumberUtils.toLong(list.get(0).toString()))
-                            : reference.equals(Short.class)
-                            ? reference.cast(NumberUtils.toShort(list.get(0).toString()))
-                            : reference.equals(Float.class)
-                            ? reference.cast(NumberUtils.toFloat(list.get(0).toString()))
-                            : reference.equals(byte.class)
-                            ? reference.cast(NumberUtils.toByte(list.get(0).toString()))
-                            : reference.cast(NumberUtils.toDouble(list.get(0).toString()));
+                        ? reference.cast(NumberUtils.toInt(list.get(0).toString()))
+                        : reference.equals(Long.class)
+                        ? reference.cast(NumberUtils.toLong(list.get(0).toString()))
+                        : reference.equals(Short.class)
+                        ? reference.cast(NumberUtils.toShort(list.get(0).toString()))
+                        : reference.equals(Float.class)
+                        ? reference.cast(NumberUtils.toFloat(list.get(0).toString()))
+                        : reference.equals(byte.class)
+                        ? reference.cast(NumberUtils.toByte(list.get(0).toString()))
+                        : reference.cast(NumberUtils.toDouble(list.get(0).toString()));
                 }
 
                 return value;
@@ -135,7 +135,7 @@
     @SuppressWarnings("rawtypes")
     @Override
     public AjaxSpinnerFieldPanel<T> setNewModel(final ListItem item) {
-        field.setModel(new Model<T>() {
+        field.setModel(new Model<>() {
 
             private static final long serialVersionUID = 6799404673615637845L;
 
@@ -149,16 +149,16 @@
                     if (obj instanceof String) {
                         try {
                             number = reference.equals(Integer.class)
-                                    ? reference.cast(Integer.valueOf((String) obj))
-                                    : reference.equals(Long.class)
-                                    ? reference.cast(Long.valueOf((String) obj))
-                                    : reference.equals(Short.class)
-                                    ? reference.cast(Short.valueOf((String) obj))
-                                    : reference.equals(Float.class)
-                                    ? reference.cast(Float.valueOf((String) obj))
-                                    : reference.equals(byte.class)
-                                    ? reference.cast(Byte.valueOf((String) obj))
-                                    : reference.cast(Double.valueOf((String) obj));
+                                ? reference.cast(Integer.valueOf((String) obj))
+                                : reference.equals(Long.class)
+                                ? reference.cast(Long.valueOf((String) obj))
+                                : reference.equals(Short.class)
+                                ? reference.cast(Short.valueOf((String) obj))
+                                : reference.equals(Float.class)
+                                ? reference.cast(Float.valueOf((String) obj))
+                                : reference.equals(byte.class)
+                                ? reference.cast(Byte.valueOf((String) obj))
+                                : reference.cast(Double.valueOf((String) obj));
                         } catch (NumberFormatException e) {
                             LOG.error("While attempting to parse {}", obj, e);
                         }
diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxTextFieldPanel.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxTextFieldPanel.java
index c092850..19edf02 100644
--- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxTextFieldPanel.java
+++ b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxTextFieldPanel.java
@@ -60,7 +60,7 @@
         settings.setShowListOnEmptyInput(true);
         settings.setCssClassName("custom-autocomplete-box");
 
-        field = new AutoCompleteTextField<String>("textField", model, settings) {
+        field = new AutoCompleteTextField<>("textField", model, settings) {
 
             private static final long serialVersionUID = -6648767303091874219L;
 
@@ -71,8 +71,8 @@
 
             @Override
             protected AutoCompleteBehavior<String> newAutoCompleteBehavior(
-                    final IAutoCompleteRenderer<String> renderer, final AutoCompleteSettings settings) {
-                return new IndicatorAutoCompleteBehavior<String>(renderer, settings) {
+                final IAutoCompleteRenderer<String> renderer, final AutoCompleteSettings settings) {
+                return new IndicatorAutoCompleteBehavior<>(renderer, settings) {
 
                     private static final long serialVersionUID = 1070808433195962931L;
 
diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/DateFieldPanel.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/DateFieldPanel.java
index d8e85b9..0fc4207 100644
--- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/DateFieldPanel.java
+++ b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/DateFieldPanel.java
@@ -46,7 +46,7 @@
 
     @Override
     public FieldPanel<Date> setNewModel(final List<Serializable> list) {
-        setNewModel(new Model<Date>() {
+        setNewModel(new Model<>() {
 
             private static final long serialVersionUID = 527651414610325237L;
 
@@ -80,7 +80,7 @@
     @SuppressWarnings("rawtypes")
     @Override
     public FieldPanel<Date> setNewModel(final ListItem item) {
-        IModel<Date> model = new Model<Date>() {
+        IModel<Date> model = new Model<>() {
 
             private static final long serialVersionUID = 6799404673615637845L;
 
@@ -123,7 +123,7 @@
 
     @Override
     public FieldPanel<Date> setNewModel(final Attributable attributable, final String schema) {
-        field.setModel(new Model<Date>() {
+        field.setModel(new Model<>() {
 
             private static final long serialVersionUID = -4214654722524358000L;
 
diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel.java
index 3386780..a26302e 100644
--- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel.java
+++ b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel.java
@@ -37,13 +37,13 @@
             final String id, final String name, final IModel<String> model, final boolean enableOnChange) {
         super(id, name, model);
 
-        field = new TextField<String>("encryptedField", model) {
+        field = new TextField<>("encryptedField", model) {
 
             private static final long serialVersionUID = 7545877620091912863L;
 
             @Override
             protected String[] getInputTypes() {
-                return new String[] { "password" };
+                return new String[]{"password"};
             }
         };
 
diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/AjaxWizard.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/AjaxWizard.java
index aad0971..3119be0 100644
--- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/AjaxWizard.java
+++ b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/AjaxWizard.java
@@ -107,7 +107,7 @@
             model.setCancelVisible(false);
         }
 
-        add(new ListView<Component>("outerObjectsRepeater", outerObjects) {
+        add(new ListView<>("outerObjectsRepeater", outerObjects) {
 
             private static final long serialVersionUID = -9180479401817023838L;
 
diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/AjaxWizardBuilder.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/AjaxWizardBuilder.java
index 9d2bc2d..b5ec608 100644
--- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/AjaxWizardBuilder.java
+++ b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/AjaxWizardBuilder.java
@@ -90,7 +90,7 @@
         // get the specified item if available
         T modelObj = newModelObject();
 
-        return new AjaxWizard<T>(id, modelObj, buildModelSteps(modelObj, new WizardModel()), mode, pageRef) {
+        return new AjaxWizard<>(id, modelObj, buildModelSteps(modelObj, new WizardModel()), mode, pageRef) {
 
             private static final long serialVersionUID = 7770507663760640735L;
 
@@ -136,7 +136,7 @@
 
             @Override
             protected Future<Pair<Serializable, Serializable>> execute(
-                    final Callable<Pair<Serializable, Serializable>> future) {
+                final Callable<Pair<Serializable, Serializable>> future) {
                 return AjaxWizardBuilder.this.execute(future);
             }
         }.setEventSink(eventSink).addOuterObject(outerObjects);
diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/any/AbstractResources.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/any/AbstractResources.java
index e2dc29b..47c265f 100644
--- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/any/AbstractResources.java
+++ b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/any/AbstractResources.java
@@ -53,20 +53,20 @@
         this.available = new ListModel<>(List.of());
 
         add(new AjaxPalettePanel.Builder<String>().build("resources",
-                new PropertyModel<List<String>>(entityTO, "resources") {
+            new PropertyModel<>(entityTO, "resources") {
 
-            private static final long serialVersionUID = 3799387950428254072L;
+                private static final long serialVersionUID = 3799387950428254072L;
 
-            @Override
-            public List<String> getObject() {
-                return new ArrayList<>(entityTO.getResources());
-            }
+                @Override
+                public List<String> getObject() {
+                    return new ArrayList<>(entityTO.getResources());
+                }
 
-            @Override
-            public void setObject(final List<String> object) {
-                entityTO.getResources().clear();
-                entityTO.getResources().addAll(object);
-            }
-        }, available).hideLabel().setOutputMarkupId(true));
+                @Override
+                public void setObject(final List<String> object) {
+                    entityTO.getResources().clear();
+                    entityTO.getResources().addAll(object);
+                }
+            }, available).hideLabel().setOutputMarkupId(true));
     }
 }
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/PreferenceManager.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/PreferenceManager.java
index 838132f..680f4ca 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/PreferenceManager.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/PreferenceManager.java
@@ -47,7 +47,7 @@
 
     private static final ObjectMapper MAPPER = new ObjectMapper();
 
-    private static final TypeReference<Map<String, String>> MAP_TYPE_REF = new TypeReference<Map<String, String>>() {
+    private static final TypeReference<Map<String, String>> MAP_TYPE_REF = new TypeReference<>() {
     };
 
     private static final List<Integer> PAGINATOR_CHOICES = List.of(10, 25, 50);
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryDetails.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryDetails.java
index 47fae01..5911ecc 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryDetails.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryDetails.java
@@ -84,7 +84,7 @@
             }
         });
 
-        AjaxLink<Void> restore = new AjaxLink<Void>("restore") {
+        AjaxLink<Void> restore = new AjaxLink<>("restore") {
 
             private static final long serialVersionUID = -817438685948164787L;
 
@@ -92,8 +92,8 @@
             public void onClick(final AjaxRequestTarget target) {
                 try {
                     String json = selected.getBefore() == null
-                            ? MAPPER.readTree(selected.getOutput()).get("entity").toPrettyString()
-                            : selected.getBefore();
+                        ? MAPPER.readTree(selected.getOutput()).get("entity").toPrettyString()
+                        : selected.getBefore();
                     restore(json, target);
 
                     mlp.prev(target);
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryDirectoryPanel.java
index a12ee8f..a12138b 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryDirectoryPanel.java
@@ -123,7 +123,7 @@
     protected ActionsPanel<AuditEntry> getActions(final IModel<AuditEntry> model) {
         final ActionsPanel<AuditEntry> panel = super.getActions(model);
 
-        panel.add(new ActionLink<AuditEntry>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -6745431735457245600L;
 
@@ -132,16 +132,16 @@
                 AuditHistoryDirectoryPanel.this.getTogglePanel().close(target);
 
                 mlp.next(
-                        new StringResourceModel("audit.diff.view", AuditHistoryDirectoryPanel.this).getObject(),
-                        new AuditHistoryDetails<T>(mlp, modelObject, entity, auditRestoreEntitlement) {
+                    new StringResourceModel("audit.diff.view", AuditHistoryDirectoryPanel.this).getObject(),
+                    new AuditHistoryDetails<T>(mlp, modelObject, entity, auditRestoreEntitlement) {
 
-                    private static final long serialVersionUID = -5311898419151367494L;
+                        private static final long serialVersionUID = -5311898419151367494L;
 
-                    @Override
-                    protected void restore(final String json, final AjaxRequestTarget target) {
-                        AuditHistoryDirectoryPanel.this.restore(json, target);
-                    }
-                }, target);
+                        @Override
+                        protected void restore(final String json, final AjaxRequestTarget target) {
+                            AuditHistoryDirectoryPanel.this.restore(json, target);
+                        }
+                    }, target);
 
                 target.add(modal);
             }
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/batch/BatchContent.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/batch/BatchContent.java
index 7193aab..9f20b2a 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/batch/BatchContent.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/batch/BatchContent.java
@@ -110,7 +110,7 @@
         setup(items, columns);
 
         for (ActionLink.ActionType action : actions) {
-            actionPanel.add(new ActionLink<Serializable>() {
+            actionPanel.add(new ActionLink<>() {
 
                 private static final long serialVersionUID = -3722207913631435501L;
 
@@ -137,7 +137,7 @@
 
                                 try {
                                     batchExecutor.getClass().getMethod("deleteExecution", String.class).
-                                            invoke(batchExecutor, exec.getKey());
+                                        invoke(batchExecutor, exec.getKey());
                                     results.put(exec.getKey(), ExecStatus.SUCCESS.name());
                                 } catch (Exception e) {
                                     LOG.error("Error deleting execution {}", exec.getKey(), e);
@@ -150,16 +150,16 @@
                             // Group bean information by anyKey
                             Map<String, List<StatusBean>> beans = new HashMap<>();
                             items.stream().map(StatusBean.class::cast).
-                                    forEachOrdered(sb -> {
-                                        final List<StatusBean> sblist;
-                                        if (beans.containsKey(sb.getKey())) {
-                                            sblist = beans.get(sb.getKey());
-                                        } else {
-                                            sblist = new ArrayList<>();
-                                            beans.put(sb.getKey(), sblist);
-                                        }
-                                        sblist.add(sb);
-                                    });
+                                forEachOrdered(sb -> {
+                                    final List<StatusBean> sblist;
+                                    if (beans.containsKey(sb.getKey())) {
+                                        sblist = beans.get(sb.getKey());
+                                    } else {
+                                        sblist = new ArrayList<>();
+                                        beans.put(sb.getKey(), sblist);
+                                    }
+                                    sblist.add(sb);
+                                });
 
                             results = new HashMap<>();
                             beans.forEach((key, value) -> {
@@ -168,32 +168,32 @@
                                 switch (action) {
                                     case DEPROVISION:
                                         results.putAll(anyRestClient.deassociate(
-                                                ResourceDeassociationAction.DEPROVISION, etag, key, value));
+                                            ResourceDeassociationAction.DEPROVISION, etag, key, value));
                                         break;
 
                                     case UNASSIGN:
                                         results.putAll(anyRestClient.deassociate(
-                                                ResourceDeassociationAction.UNASSIGN, etag, key, value));
+                                            ResourceDeassociationAction.UNASSIGN, etag, key, value));
                                         break;
 
                                     case UNLINK:
                                         results.putAll(anyRestClient.deassociate(
-                                                ResourceDeassociationAction.UNLINK, etag, key, value));
+                                            ResourceDeassociationAction.UNLINK, etag, key, value));
                                         break;
 
                                     case ASSIGN:
                                         results.putAll(anyRestClient.associate(
-                                                ResourceAssociationAction.ASSIGN, etag, key, value));
+                                            ResourceAssociationAction.ASSIGN, etag, key, value));
                                         break;
 
                                     case LINK:
                                         results.putAll(anyRestClient.associate(
-                                                ResourceAssociationAction.LINK, etag, key, value));
+                                            ResourceAssociationAction.LINK, etag, key, value));
                                         break;
 
                                     case PROVISION:
                                         results.putAll(anyRestClient.associate(
-                                                ResourceAssociationAction.PROVISION, etag, key, value));
+                                            ResourceAssociationAction.PROVISION, etag, key, value));
                                         break;
 
                                     case SUSPEND:
@@ -214,10 +214,10 @@
                             GroupService batchGroupService = batch.getService(GroupService.class);
                             AnyObjectService batchAnyObjectService = batch.getService(AnyObjectService.class);
                             AnyService<?> batchAnyService = singleItem instanceof UserTO
-                                    ? batchUserService
-                                    : singleItem instanceof GroupTO
-                                            ? batchGroupService
-                                            : batchAnyObjectService;
+                                ? batchUserService
+                                : singleItem instanceof GroupTO
+                                ? batchGroupService
+                                : batchAnyObjectService;
                             TaskService batchTaskService = batch.getService(TaskService.class);
                             ReportService batchReportService = batch.getService(ReportService.class);
 
@@ -231,7 +231,7 @@
                                         UserUR req = new UserUR();
                                         req.setKey(user.getKey());
                                         req.setMustChangePassword(new BooleanReplacePatchItem.Builder().
-                                                value(!user.isMustChangePassword()).build());
+                                            value(!user.isMustChangePassword()).build());
 
                                         batchUserService.update(req);
                                     });
@@ -242,11 +242,11 @@
                                         UserTO user = (UserTO) item;
 
                                         StatusR req = new StatusR.Builder().
-                                                key(user.getKey()).
-                                                type(StatusRType.SUSPEND).
-                                                onSyncope(true).
-                                                resources(user.getResources()).
-                                                build();
+                                            key(user.getKey()).
+                                            type(StatusRType.SUSPEND).
+                                            onSyncope(true).
+                                            resources(user.getResources()).
+                                            build();
 
                                         batchUserService.status(req);
                                     });
@@ -257,11 +257,11 @@
                                         UserTO user = (UserTO) item;
 
                                         StatusR req = new StatusR.Builder().
-                                                key(user.getKey()).
-                                                type(StatusRType.REACTIVATE).
-                                                onSyncope(true).
-                                                resources(user.getResources()).
-                                                build();
+                                            key(user.getKey()).
+                                            type(StatusRType.REACTIVATE).
+                                            onSyncope(true).
+                                            resources(user.getResources()).
+                                            build();
 
                                         batchUserService.status(req);
                                     });
@@ -278,8 +278,8 @@
                                             TaskTO task = (TaskTO) item;
 
                                             batchTaskService.delete(
-                                                    TaskType.fromTOClass(task.getClass()),
-                                                    task.getKey());
+                                                TaskType.fromTOClass(task.getClass()),
+                                                task.getKey());
                                         } else if (singleItem instanceof ReportTO) {
                                             ReportTO report = (ReportTO) item;
 
@@ -296,7 +296,7 @@
                                         TaskTO task = (TaskTO) item;
 
                                         batchTaskService.execute(
-                                                new ExecuteQuery.Builder().dryRun(true).key(task.getKey()).build());
+                                            new ExecuteQuery.Builder().dryRun(true).key(task.getKey()).build());
                                     });
                                     break;
 
@@ -306,12 +306,12 @@
                                             TaskTO task = (TaskTO) item;
 
                                             batchTaskService.execute(new ExecuteQuery.Builder().
-                                                    dryRun(false).key(task.getKey()).build());
+                                                dryRun(false).key(task.getKey()).build());
                                         } else if (singleItem instanceof ReportTO) {
                                             ReportTO report = (ReportTO) item;
 
                                             batchReportService.execute(new ExecuteQuery.Builder().
-                                                    key(report.getKey()).build());
+                                                key(report.getKey()).build());
                                         }
                                     });
                                     break;
@@ -320,15 +320,15 @@
                             }
 
                             results = CastUtils.cast(Map.class.cast(
-                                    batchExecutor.getClass().getMethod("batch",
-                                            BatchRequest.class).invoke(batchExecutor, batch)));
+                                batchExecutor.getClass().getMethod("batch",
+                                    BatchRequest.class).invoke(batchExecutor, batch)));
 
                             if (singleItem instanceof AnyTO) {
                                 AbstractAnyRestClient<? extends AnyTO> anyRestClient = singleItem instanceof UserTO
-                                        ? UserRestClient.class.cast(batchExecutor)
-                                        : singleItem instanceof GroupTO
-                                                ? GroupRestClient.class.cast(batchExecutor)
-                                                : AnyObjectRestClient.class.cast(batchExecutor);
+                                    ? UserRestClient.class.cast(batchExecutor)
+                                    : singleItem instanceof GroupTO
+                                    ? GroupRestClient.class.cast(batchExecutor)
+                                    : AnyObjectRestClient.class.cast(batchExecutor);
                                 for (int i = 0; i < items.size(); i++) {
                                     String key = ((AnyTO) items.get(i)).getKey();
                                     if (!deletedAnys.contains(key)) {
@@ -342,10 +342,10 @@
                         newColumnList.add(newColumnList.size(), new BatchResponseColumn<>(results, keyFieldName));
 
                         container.addOrReplace(new AjaxFallbackDefaultDataTable<>(
-                                "selectedObjects",
-                                newColumnList,
-                                dataProvider,
-                                Integer.MAX_VALUE).setVisible(!items.isEmpty()));
+                            "selectedObjects",
+                            newColumnList,
+                            dataProvider,
+                            Integer.MAX_VALUE).setVisible(!items.isEmpty()));
 
                         actionPanel.setEnabled(false);
                         actionPanel.setVisible(false);
@@ -395,7 +395,7 @@
         container.setOutputMarkupId(true);
         add(container);
 
-        dataProvider = new SortableDataProvider<T, S>() {
+        dataProvider = new SortableDataProvider<>() {
 
             private static final long serialVersionUID = 5291903859908641954L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/commons/IdRepoImplementationInfoProvider.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/commons/IdRepoImplementationInfoProvider.java
index 887df15..a95f03d 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/commons/IdRepoImplementationInfoProvider.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/commons/IdRepoImplementationInfoProvider.java
@@ -157,21 +157,21 @@
 
     @Override
     public IModel<List<String>> getTaskJobDelegates() {
-        return new LoadableDetachableModel<List<String>>() {
+        return new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
             @Override
             protected List<String> load() {
                 return ImplementationRestClient.list(IdRepoImplementationType.TASKJOB_DELEGATE).stream().
-                        map(EntityTO::getKey).sorted().collect(Collectors.toList());
+                    map(EntityTO::getKey).sorted().collect(Collectors.toList());
             }
         };
     }
 
     @Override
     public IModel<List<String>> getReconFilterBuilders() {
-        return new LoadableDetachableModel<List<String>>() {
+        return new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
@@ -184,7 +184,7 @@
 
     @Override
     public IModel<List<String>> getPullActions() {
-        return new LoadableDetachableModel<List<String>>() {
+        return new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
@@ -197,7 +197,7 @@
 
     @Override
     public IModel<List<String>> getPushActions() {
-        return new LoadableDetachableModel<List<String>>() {
+        return new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/commons/IdRepoRealmPolicyProvider.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/commons/IdRepoRealmPolicyProvider.java
index 797e254..1e67370 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/commons/IdRepoRealmPolicyProvider.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/commons/IdRepoRealmPolicyProvider.java
@@ -38,25 +38,25 @@
 
     private static final long serialVersionUID = 1L;
 
-    private final IModel<Map<String, String>> accountPolicies = new LoadableDetachableModel<Map<String, String>>() {
+    private final IModel<Map<String, String>> accountPolicies = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = -2012833443695917883L;
 
         @Override
         protected Map<String, String> load() {
             return PolicyRestClient.list(PolicyType.ACCOUNT).stream().
-                    collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
+                collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
         }
     };
 
-    private final IModel<Map<String, String>> passwordPolicies = new LoadableDetachableModel<Map<String, String>>() {
+    private final IModel<Map<String, String>> passwordPolicies = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = -2012833443695917883L;
 
         @Override
         protected Map<String, String> load() {
             return PolicyRestClient.list(PolicyType.PASSWORD).stream().
-                    collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
+                collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName));
         }
     };
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/events/EventCategoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/events/EventCategoryPanel.java
index 9d86c1a..cbad77a 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/events/EventCategoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/events/EventCategoryPanel.java
@@ -107,7 +107,7 @@
                 new PropertyModel<>(eventCategoryTO, "type"),
                 false);
         type.setChoices(List.of(EventCategoryType.values()));
-        type.setChoiceRenderer(new IChoiceRenderer<EventCategoryType>() {
+        type.setChoiceRenderer(new IChoiceRenderer<>() {
 
             private static final long serialVersionUID = 2317134950949778735L;
 
@@ -123,7 +123,7 @@
 
             @Override
             public EventCategoryType getObject(
-                    final String id, final IModel<? extends List<? extends EventCategoryType>> choices) {
+                final String id, final IModel<? extends List<? extends EventCategoryType>> choices) {
                 return choices.getObject().stream().filter(object -> object.name().equals(id)).findAny().orElse(null);
             }
         });
@@ -184,7 +184,7 @@
         categoryContainer.add(custom.hideLabel());
 
         actionsPanel = new ActionsPanel<>("customActions", null);
-        actionsPanel.add(new ActionLink<EventCategory>() {
+        actionsPanel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -192,26 +192,26 @@
             public void onClick(final AjaxRequestTarget target, final EventCategory ignore) {
                 if (StringUtils.isNotBlank(custom.getModelObject())) {
                     Pair<EventCategory, AuditElements.Result> parsed = AuditLoggerName.parseEventCategory(custom.
-                            getModelObject());
+                        getModelObject());
 
                     String eventString = AuditLoggerName.buildEvent(
-                            parsed.getKey().getType(),
-                            null,
-                            null,
-                            parsed.getKey().getEvents().isEmpty()
+                        parsed.getKey().getType(),
+                        null,
+                        null,
+                        parsed.getKey().getEvents().isEmpty()
                             ? StringUtils.EMPTY : parsed.getKey().getEvents().iterator().next(),
-                            parsed.getValue());
+                        parsed.getValue());
 
                     custom.setModelObject(StringUtils.EMPTY);
                     send(EventCategoryPanel.this.getPage(), Broadcast.BREADTH, new EventSelectionChanged(
-                            target,
-                            Set.of(eventString),
-                            Set.of()));
+                        target,
+                        Set.of(eventString),
+                        Set.of()));
                     target.add(categoryContainer);
                 }
             }
         }, ActionLink.ActionType.CREATE, StringUtils.EMPTY).hideLabel();
-        actionsPanel.add(new ActionLink<EventCategory>() {
+        actionsPanel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435521L;
 
@@ -219,21 +219,21 @@
             public void onClick(final AjaxRequestTarget target, final EventCategory ignore) {
                 if (StringUtils.isNotBlank(custom.getModelObject())) {
                     Pair<EventCategory, AuditElements.Result> parsed = AuditLoggerName.parseEventCategory(custom.
-                            getModelObject());
+                        getModelObject());
 
                     String eventString = AuditLoggerName.buildEvent(
-                            parsed.getKey().getType(),
-                            null,
-                            null,
-                            parsed.getKey().getEvents().isEmpty()
+                        parsed.getKey().getType(),
+                        null,
+                        null,
+                        parsed.getKey().getEvents().isEmpty()
                             ? StringUtils.EMPTY : parsed.getKey().getEvents().iterator().next(),
-                            parsed.getValue());
+                        parsed.getValue());
 
                     custom.setModelObject(StringUtils.EMPTY);
                     send(EventCategoryPanel.this.getPage(), Broadcast.BREADTH, new EventSelectionChanged(
-                            target,
-                            Set.of(),
-                            Set.of(eventString)));
+                        target,
+                        Set.of(),
+                        Set.of(eventString)));
                     target.add(categoryContainer);
                 }
             }
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/events/EventSelectionPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/events/EventSelectionPanel.java
index 83ff337..ab43d8b 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/events/EventSelectionPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/events/EventSelectionPanel.java
@@ -95,7 +95,7 @@
         successSelector.setVisible(!events.isEmpty());
         add(successSelector);
 
-        ListView<String> categoryView = new ListView<String>("categoryView", events) {
+        ListView<String> categoryView = new ListView<>("categoryView", events) {
 
             private static final long serialVersionUID = 4949588177564901031L;
 
@@ -106,20 +106,20 @@
         };
         add(categoryView);
 
-        ListView<String> successView = new ListView<String>("successView", events) {
+        ListView<String> successView = new ListView<>("successView", events) {
 
             private static final long serialVersionUID = 4949588177564901031L;
 
             @Override
             protected void populateItem(final ListItem<String> item) {
                 item.add(new Check<>("successCheck",
-                        new Model<>(AuditLoggerName.buildEvent(
-                                eventCategoryTO.getType(),
-                                eventCategoryTO.getCategory(),
-                                eventCategoryTO.getSubcategory(),
-                                item.getModelObject(),
-                                AuditElements.Result.SUCCESS)),
-                        successGroup));
+                    new Model<>(AuditLoggerName.buildEvent(
+                        eventCategoryTO.getType(),
+                        eventCategoryTO.getCategory(),
+                        eventCategoryTO.getSubcategory(),
+                        item.getModelObject(),
+                        AuditElements.Result.SUCCESS)),
+                    successGroup));
             }
         };
         successGroup.add(successView);
@@ -162,20 +162,20 @@
         failureSelector.setVisible(!events.isEmpty());
         add(failureSelector);
 
-        ListView<String> failureView = new ListView<String>("failureView", events) {
+        ListView<String> failureView = new ListView<>("failureView", events) {
 
             private static final long serialVersionUID = 4949588177564901031L;
 
             @Override
             protected void populateItem(final ListItem<String> item) {
                 item.add(new Check<>("failureCheck",
-                        new Model<>(AuditLoggerName.buildEvent(
-                                eventCategoryTO.getType(),
-                                eventCategoryTO.getCategory(),
-                                eventCategoryTO.getSubcategory(),
-                                item.getModelObject(),
-                                AuditElements.Result.FAILURE)),
-                        failureGroup));
+                    new Model<>(AuditLoggerName.buildEvent(
+                        eventCategoryTO.getType(),
+                        eventCategoryTO.getCategory(),
+                        eventCategoryTO.getSubcategory(),
+                        item.getModelObject(),
+                        AuditElements.Result.FAILURE)),
+                    failureGroup));
             }
         };
         failureGroup.add(failureView);
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/events/SelectedEventsPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/events/SelectedEventsPanel.java
index b9857ea..b3c4009 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/events/SelectedEventsPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/events/SelectedEventsPanel.java
@@ -51,20 +51,20 @@
         add(selectionContainer);
 
         ListMultipleChoice<String> selectedEvents =
-                new ListMultipleChoice<String>("selectedEvents", new ListModel<String>(), model) {
+            new ListMultipleChoice<>("selectedEvents", new ListModel<>(), model) {
 
-            private static final long serialVersionUID = 1226677544225737338L;
+                private static final long serialVersionUID = 1226677544225737338L;
 
-            @Override
-            protected void onComponentTag(final ComponentTag tag) {
-                super.onComponentTag(tag);
-                tag.remove("size");
-                tag.remove("multiple");
-                tag.put("size", 5);
-            }
-        };
+                @Override
+                protected void onComponentTag(final ComponentTag tag) {
+                    super.onComponentTag(tag);
+                    tag.remove("size");
+                    tag.remove("multiple");
+                    tag.put("size", 5);
+                }
+            };
         selectedEvents.setMaxRows(5);
-        selectedEvents.setChoiceRenderer(new IChoiceRenderer<String>() {
+        selectedEvents.setChoiceRenderer(new IChoiceRenderer<>() {
 
             private static final long serialVersionUID = -4288397951948436434L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.java
index 5619d2f..4088e90 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/notifications/MailTemplateDirectoryPanel.java
@@ -112,16 +112,16 @@
     public ActionsPanel<MailTemplateTO> getActions(final IModel<MailTemplateTO> model) {
         final ActionsPanel<MailTemplateTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<MailTemplateTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770645L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final MailTemplateTO ignore) {
                 TemplateContent<MailTemplateFormat> content = new TemplateContent<>(model.getObject().getKey(),
-                        MailTemplateFormat.HTML);
+                    MailTemplateFormat.HTML);
                 content.setContent(
-                        restClient.readTemplateFormat(model.getObject().getKey(), MailTemplateFormat.HTML));
+                    restClient.readTemplateFormat(model.getObject().getKey(), MailTemplateFormat.HTML));
 
                 utilityModal.header(new ResourceModel("mail.template.html", "HTML Content"));
                 utilityModal.setContent(new TemplateContentEditorPanel(content, pageRef));
@@ -130,16 +130,16 @@
             }
         }, ActionLink.ActionType.HTML, IdRepoEntitlement.MAIL_TEMPLATE_UPDATE);
 
-        panel.add(new ActionLink<MailTemplateTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770645L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final MailTemplateTO ignore) {
                 TemplateContent<MailTemplateFormat> content = new TemplateContent<>(model.getObject().getKey(),
-                        MailTemplateFormat.TEXT);
+                    MailTemplateFormat.TEXT);
                 content.setContent(
-                        restClient.readTemplateFormat(model.getObject().getKey(), MailTemplateFormat.TEXT));
+                    restClient.readTemplateFormat(model.getObject().getKey(), MailTemplateFormat.TEXT));
 
                 utilityModal.header(new ResourceModel("mail.template.text", "TEXT Content"));
                 utilityModal.setContent(new TemplateContentEditorPanel(content, pageRef));
@@ -148,7 +148,7 @@
             }
         }, ActionLink.ActionType.TEXT, IdRepoEntitlement.MAIL_TEMPLATE_UPDATE);
 
-        panel.add(new ActionLink<MailTemplateTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -210,7 +210,7 @@
 
         @Override
         public IModel<MailTemplateTO> model(final MailTemplateTO mailTemplateTO) {
-            return new IModel<MailTemplateTO>() {
+            return new IModel<>() {
 
                 private static final long serialVersionUID = 774694801558497248L;
 
@@ -232,7 +232,7 @@
                 final TemplateContent<MailTemplateFormat> content,
                 final PageReference pageRef) {
 
-            super(utilityModal, new PropertyModel<String>(content, "content"), false, pageRef);
+            super(utilityModal, new PropertyModel<>(content, "content"), false, pageRef);
             this.content = content;
         }
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel.java
index 29901f0..2e10c15 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationDirectoryPanel.java
@@ -101,34 +101,34 @@
     public ActionsPanel<NotificationTO> getActions(final IModel<NotificationTO> model) {
         final ActionsPanel<NotificationTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<NotificationTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770645L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final NotificationTO ignore) {
                 send(NotificationDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(
-                                new NotificationWrapper(
-                                        NotificationRestClient.read(model.getObject().getKey())), target));
+                    new AjaxWizard.EditItemActionEvent<>(
+                        new NotificationWrapper(
+                            NotificationRestClient.read(model.getObject().getKey())), target));
             }
         }, ActionLink.ActionType.EDIT, IdRepoEntitlement.NOTIFICATION_UPDATE);
 
-        panel.add(new ActionLink<NotificationTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770645L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final NotificationTO ignore) {
                 target.add(utilityModal.setContent(
-                        new NotificationTasks(model.getObject().getKey(), pageRef)));
+                    new NotificationTasks(model.getObject().getKey(), pageRef)));
                 utilityModal.header(new StringResourceModel("notification.tasks", model));
                 utilityModal.show(true);
                 target.add(utilityModal);
             }
         }, ActionLink.ActionType.NOTIFICATION_TASKS, IdRepoEntitlement.TASK_LIST);
 
-        panel.add(new ActionLink<NotificationTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -191,7 +191,7 @@
 
         @Override
         public IModel<NotificationTO> model(final NotificationTO notification) {
-            return new IModel<NotificationTO>() {
+            return new IModel<>() {
 
                 private static final long serialVersionUID = 774694801558497248L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWizardBuilder.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWizardBuilder.java
index acca0ac..98a2762 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWizardBuilder.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/notifications/NotificationWizardBuilder.java
@@ -166,7 +166,7 @@
             add(new EventCategoryPanel(
                     "eventSelection",
                     AuditRestClient.listEvents(),
-                    new PropertyModel<List<String>>(modelObject.getInnerObject(), "events")) {
+                new PropertyModel<>(modelObject.getInnerObject(), "events")) {
 
                 private static final long serialVersionUID = 6429053774964787735L;
 
@@ -192,7 +192,7 @@
             setOutputMarkupId(true);
 
             AjaxDropDownChoicePanel<String> type =
-                    new AjaxDropDownChoicePanel<>("about", "anyType", new Model<String>() {
+                    new AjaxDropDownChoicePanel<>("about", "anyType", new Model<>() {
 
                         private static final long serialVersionUID = -2350296434572623272L;
 
@@ -211,7 +211,7 @@
             type.addRequiredLabel();
             add(type);
 
-            ListModel<SearchClause> clauseModel = new ListModel<SearchClause>() {
+            ListModel<SearchClause> clauseModel = new ListModel<>() {
 
                 private static final long serialVersionUID = 3769540249683319782L;
 
@@ -280,7 +280,7 @@
 
             IModel<List<Pair<String, List<SearchClause>>>> model = new PropertyModel<>(modelObject, "aboutClauses");
 
-            aboutContainer.add(new MultiPanel<Pair<String, List<SearchClause>>>("abouts", "abouts", model) {
+            aboutContainer.add(new MultiPanel<>("abouts", "abouts", model) {
 
                 private static final long serialVersionUID = -2481579077338205547L;
 
@@ -292,7 +292,7 @@
                 @Override
                 protected About getItemPanel(final ListItem<Pair<String, List<SearchClause>>> item) {
 
-                    return new About("panel", new Model<Pair<String, List<SearchClause>>>() {
+                    return new About("panel", new Model<>() {
 
                         private static final long serialVersionUID = 6799404673615637845L;
 
@@ -325,14 +325,14 @@
 
         private static final long serialVersionUID = -7709805590497687958L;
 
-        private final IModel<List<String>> recipientProviders = new LoadableDetachableModel<List<String>>() {
+        private final IModel<List<String>> recipientProviders = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157447L;
 
             @Override
             protected List<String> load() {
                 return ImplementationRestClient.list(IdRepoImplementationType.RECIPIENTS_PROVIDER).stream().
-                        map(EntityTO::getKey).sorted().collect(Collectors.toList());
+                    map(EntityTO::getKey).sorted().collect(Collectors.toList());
             }
         };
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/BasePage.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/BasePage.java
index 0dfdd98..4915075 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/BasePage.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/BasePage.java
@@ -114,7 +114,7 @@
         body.add(new Label("os", systemInfo.getOs()));
         body.add(new Label("jvm", systemInfo.getJvm()));
 
-        Link<Void> dbExportLink = new Link<Void>("dbExportLink") {
+        Link<Void> dbExportLink = new Link<>("dbExportLink") {
 
             private static final long serialVersionUID = -4331619903296515985L;
 
@@ -122,12 +122,12 @@
             public void onClick() {
                 try {
                     HttpResourceStream stream = new HttpResourceStream(
-                            new ResponseHolder(SyncopeRestClient.exportInternalStorageContent()));
+                        new ResponseHolder(SyncopeRestClient.exportInternalStorageContent()));
 
                     ResourceStreamRequestHandler rsrh = new ResourceStreamRequestHandler(stream);
                     rsrh.setFileName(stream.getFilename() == null
-                            ? SyncopeConsoleSession.get().getDomain() + "Content.xml"
-                            : stream.getFilename());
+                        ? SyncopeConsoleSession.get().getDomain() + "Content.xml"
+                        : stream.getFilename());
                     rsrh.setContentDisposition(ContentDisposition.ATTACHMENT);
                     rsrh.setCacheDuration(Duration.ZERO);
 
@@ -160,8 +160,8 @@
         liContainer.add(link);
 
         List<Class<? extends BasePage>> idmPageClasses = SyncopeWebApplication.get().getLookup().getIdMPageClasses();
-        ListView<Class<? extends BasePage>> idmPages = new ListView<Class<? extends BasePage>>(
-                "idmPages", idmPageClasses) {
+        ListView<Class<? extends BasePage>> idmPages = new ListView<>(
+            "idmPages", idmPageClasses) {
 
             private static final long serialVersionUID = 4949588177564901031L;
 
@@ -200,8 +200,8 @@
         body.add(idmPages);
 
         List<Class<? extends BasePage>> amPageClasses = SyncopeWebApplication.get().getLookup().getAMPageClasses();
-        ListView<Class<? extends BasePage>> amPages = new ListView<Class<? extends BasePage>>(
-                "amPages", amPageClasses) {
+        ListView<Class<? extends BasePage>> amPages = new ListView<>(
+            "amPages", amPageClasses) {
 
             private static final long serialVersionUID = -9112553137618363167L;
 
@@ -335,7 +335,7 @@
         body.add(delegationsContainer.setOutputMarkupPlaceholderTag(true).
                 setVisible(!SyncopeConsoleSession.get().getDelegations().isEmpty()));
         delegationsContainer.add(new Label("delegationsHeader", new ResourceModel("delegations")));
-        delegationsContainer.add(new ListView<String>("delegations", SyncopeConsoleSession.get().getDelegations()) {
+        delegationsContainer.add(new ListView<>("delegations", SyncopeConsoleSession.get().getDelegations()) {
 
             @Override
             protected void populateItem(final ListItem<String> item) {
@@ -466,8 +466,8 @@
         // Extensions
         List<Class<? extends ExtAlertWidget<?>>> extAlertWidgetClasses =
                 SyncopeWebApplication.get().getLookup().getExtAlertWidgetClasses();
-        ListView<Class<? extends ExtAlertWidget<?>>> extAlertWidgets = new ListView<Class<? extends ExtAlertWidget<?>>>(
-                "extAlertWidgets", extAlertWidgetClasses) {
+        ListView<Class<? extends ExtAlertWidget<?>>> extAlertWidgets = new ListView<>(
+            "extAlertWidgets", extAlertWidgetClasses) {
 
             private static final long serialVersionUID = -9112553137618363167L;
 
@@ -475,7 +475,7 @@
             protected void populateItem(final ListItem<Class<? extends ExtAlertWidget<?>>> item) {
                 try {
                     Constructor<? extends ExtAlertWidget<?>> constructor =
-                            item.getModelObject().getDeclaredConstructor(String.class, PageReference.class);
+                        item.getModelObject().getDeclaredConstructor(String.class, PageReference.class);
                     ExtAlertWidget<?> widget = constructor.newInstance("extAlertWidget", getPageReference());
 
                     SyncopeConsoleSession.get().setAttribute(widget.getClass().getName(), widget);
@@ -497,46 +497,46 @@
         body.add(extensionsLI);
 
         ListView<Class<? extends BaseExtPage>> extPages =
-                new ListView<Class<? extends BaseExtPage>>("extPages", extPageClasses) {
+            new ListView<>("extPages", extPageClasses) {
 
-            private static final long serialVersionUID = 4949588177564901031L;
+                private static final long serialVersionUID = 4949588177564901031L;
 
-            @Override
-            protected void populateItem(final ListItem<Class<? extends BaseExtPage>> item) {
-                WebMarkupContainer containingLI = new WebMarkupContainer("extPageLI");
-                item.add(containingLI);
+                @Override
+                protected void populateItem(final ListItem<Class<? extends BaseExtPage>> item) {
+                    WebMarkupContainer containingLI = new WebMarkupContainer("extPageLI");
+                    item.add(containingLI);
 
-                ExtPage ann = item.getModelObject().getAnnotation(ExtPage.class);
+                    ExtPage ann = item.getModelObject().getAnnotation(ExtPage.class);
 
-                BookmarkablePageLink<Page> link = new BookmarkablePageLink<>("extPage", item.getModelObject());
-                link.add(new Label("extPageLabel", ann.label()));
-                if (StringUtils.isNotBlank(ann.listEntitlement())) {
-                    MetaDataRoleAuthorizationStrategy.authorize(link, WebPage.RENDER, ann.listEntitlement());
-                }
-                if (item.getModelObject().equals(BasePage.this.getClass())) {
-                    link.add(new Behavior() {
+                    BookmarkablePageLink<Page> link = new BookmarkablePageLink<>("extPage", item.getModelObject());
+                    link.add(new Label("extPageLabel", ann.label()));
+                    if (StringUtils.isNotBlank(ann.listEntitlement())) {
+                        MetaDataRoleAuthorizationStrategy.authorize(link, WebPage.RENDER, ann.listEntitlement());
+                    }
+                    if (item.getModelObject().equals(BasePage.this.getClass())) {
+                        link.add(new Behavior() {
 
-                        private static final long serialVersionUID = 1469628524240283489L;
+                            private static final long serialVersionUID = 1469628524240283489L;
 
-                        @Override
-                        public void renderHead(final Component component, final IHeaderResponse response) {
-                            response.render(OnDomReadyHeaderItem.forScript(
+                            @Override
+                            public void renderHead(final Component component, final IHeaderResponse response) {
+                                response.render(OnDomReadyHeaderItem.forScript(
                                     "$('#extensionsLink').addClass('active')"));
-                        }
+                            }
 
-                        @Override
-                        public void onComponentTag(final Component component, final ComponentTag tag) {
-                            tag.append("class", "active", " ");
-                        }
-                    });
+                            @Override
+                            public void onComponentTag(final Component component, final ComponentTag tag) {
+                                tag.append("class", "active", " ");
+                            }
+                        });
+                    }
+                    containingLI.add(link);
+
+                    Label extPageIcon = new Label("extPageIcon");
+                    extPageIcon.add(new AttributeModifier("class", "nav-icon " + ann.icon()));
+                    link.add(extPageIcon);
                 }
-                containingLI.add(link);
-
-                Label extPageIcon = new Label("extPageIcon");
-                extPageIcon.add(new AttributeModifier("class", "nav-icon " + ann.icon()));
-                link.add(extPageIcon);
-            }
-        };
+            };
         extPages.setRenderBodyOnly(true);
         extPages.setOutputMarkupId(true);
         extensionsLI.add(extPages);
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java
index 84a2910..1f2b18b 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java
@@ -96,7 +96,7 @@
 
         content.add(templates);
 
-        templateModal = new BaseModal<Serializable>("templateModal") {
+        templateModal = new BaseModal<>("templateModal") {
 
             private static final long serialVersionUID = 5787433530654262016L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AccessTokenDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AccessTokenDirectoryPanel.java
index 16e2ef7..e235ccc 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AccessTokenDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AccessTokenDirectoryPanel.java
@@ -89,20 +89,20 @@
 
         columns.add(new PropertyColumn<>(new ResourceModel("owner"), "owner", "owner"));
 
-        columns.add(new AbstractColumn<AccessTokenTO, String>(new ResourceModel("issuedAt", "")) {
+        columns.add(new AbstractColumn<>(new ResourceModel("issuedAt", "")) {
 
             private static final long serialVersionUID = -1822504503325964706L;
 
             @Override
             public void populateItem(
-                    final Item<ICellPopulator<AccessTokenTO>> cellItem,
-                    final String componentId,
-                    final IModel<AccessTokenTO> model) {
+                final Item<ICellPopulator<AccessTokenTO>> cellItem,
+                final String componentId,
+                final IModel<AccessTokenTO> model) {
 
                 try {
                     SignedJWT jwt = SignedJWT.parse(model.getObject().getBody());
                     cellItem.add(new Label(componentId,
-                            SyncopeConsoleSession.get().getDateFormat().format(jwt.getJWTClaimsSet().getIssueTime())));
+                        SyncopeConsoleSession.get().getDateFormat().format(jwt.getJWTClaimsSet().getIssueTime())));
                 } catch (ParseException e) {
                     LOG.error("Could not parse JWT {}", model.getObject().getBody(), e);
                     cellItem.add(new Label(componentId, StringUtils.EMPTY));
@@ -119,7 +119,7 @@
     public ActionsPanel<AccessTokenTO> getActions(final IModel<AccessTokenTO> model) {
         final ActionsPanel<AccessTokenTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<AccessTokenTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ActionDataTablePanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ActionDataTablePanel.java
index 03fc8bf..65de0f2 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ActionDataTablePanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ActionDataTablePanel.java
@@ -60,7 +60,7 @@
         batchForm = new Form<>("groupForm");
         add(batchForm);
 
-        group = new ActionTableCheckGroup<T>("checkgroup", model) {
+        group = new ActionTableCheckGroup<>("checkgroup", model) {
 
             private static final long serialVersionUID = -8667764190925075389L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java
index 55184d8..96faad2 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AjaxDataTablePanel.java
@@ -212,8 +212,8 @@
             builder.columns.add(0, new CheckGroupColumn<>(group));
         }
 
-        dataTable = new AjaxFallbackDataTable<T, S>(
-                "dataTable", builder.columns, builder.dataProvider, builder.rowsPerPage, builder.container) {
+        dataTable = new AjaxFallbackDataTable<>(
+            "dataTable", builder.columns, builder.dataProvider, builder.rowsPerPage, builder.container) {
 
             private static final long serialVersionUID = -7370603907251344224L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AnyDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AnyDirectoryPanel.java
index c20b256..48d70ba 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AnyDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AnyDirectoryPanel.java
@@ -142,11 +142,11 @@
                 prefcolumns));
 
         PreferenceManager.getList(DisplayAttributesModalPanel.getPrefPlainAttributeView(type)).stream().
-                filter(name -> pSchemaNames.contains(name)).
+                filter(pSchemaNames::contains).
                 forEach(name -> prefcolumns.add(new AttrColumn<>(name, SchemaType.PLAIN)));
 
         PreferenceManager.getList(DisplayAttributesModalPanel.getPrefDerivedAttributeView(type)).stream().
-                filter(name -> (dSchemaNames.contains(name))).
+                filter(dSchemaNames::contains).
                 forEach(name -> prefcolumns.add(new AttrColumn<>(name, SchemaType.DERIVED)));
 
         // Add defaults in case of no selection
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AnyObjectDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AnyObjectDirectoryPanel.java
index 7f694c4..e022061 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AnyObjectDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AnyObjectDirectoryPanel.java
@@ -77,14 +77,14 @@
     public ActionsPanel<Serializable> getHeader(final String componentId) {
         final ActionsPanel<Serializable> panel = super.getHeader(componentId);
 
-        panel.add(new ActionLink<Serializable>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
                 target.add(displayAttributeModal.setContent(new AnyObjectDisplayAttributesModalPanel<>(
-                        displayAttributeModal, page.getPageReference(), pSchemaNames, dSchemaNames, type)));
+                    displayAttributeModal, page.getPageReference(), pSchemaNames, dSchemaNames, type)));
                 displayAttributeModal.addSubmitButton();
                 displayAttributeModal.header(new ResourceModel("any.attr.display"));
                 displayAttributeModal.show(true);
@@ -102,18 +102,18 @@
     public ActionsPanel<AnyObjectTO> getActions(final IModel<AnyObjectTO> model) {
         final ActionsPanel<AnyObjectTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<AnyObjectTO>() {
+        panel.add(new ActionLink<>() {
 
-            private static final long serialVersionUID = -7978723352517770644L;
+                      private static final long serialVersionUID = -7978723352517770644L;
 
-            @Override
-            public void onClick(final AjaxRequestTarget target, final AnyObjectTO ignore) {
-                send(AnyObjectDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(
-                                new AnyWrapper<>(new AnyObjectRestClient().read(model.getObject().getKey())),
-                                target));
-            }
-        }, ActionType.EDIT,
+                      @Override
+                      public void onClick(final AjaxRequestTarget target, final AnyObjectTO ignore) {
+                          send(AnyObjectDirectoryPanel.this, Broadcast.EXACT,
+                              new AjaxWizard.EditItemActionEvent<>(
+                                  new AnyWrapper<>(new AnyObjectRestClient().read(model.getObject().getKey())),
+                                  target));
+                      }
+                  }, ActionType.EDIT,
                 String.format("%s,%s", AnyEntitlement.READ.getFor(type), AnyEntitlement.UPDATE.getFor(type))).
                 setRealms(realm, model.getObject().getDynRealms());
 
@@ -127,81 +127,81 @@
                     this,
                     pageRef).forEach(panel::add);
 
-            panel.add(new ActionLink<AnyObjectTO>() {
+            panel.add(new ActionLink<>() {
 
                 private static final long serialVersionUID = -7978723352517770644L;
 
                 @Override
                 public void onClick(final AjaxRequestTarget target, final AnyObjectTO ignore) {
                     target.add(utilityModal.setContent(new AnyPropagationTasks(
-                            utilityModal, AnyTypeKind.ANY_OBJECT, model.getObject().getKey(), pageRef)));
+                        utilityModal, AnyTypeKind.ANY_OBJECT, model.getObject().getKey(), pageRef)));
 
                     utilityModal.header(new StringResourceModel("any.propagation.tasks", model));
                     utilityModal.show(true);
                 }
             }, ActionType.PROPAGATION_TASKS, IdRepoEntitlement.TASK_LIST);
 
-            panel.add(new ActionLink<AnyObjectTO>() {
+            panel.add(new ActionLink<>() {
 
                 private static final long serialVersionUID = -7978723352517770644L;
 
                 @Override
                 public void onClick(final AjaxRequestTarget target, final AnyObjectTO ignore) {
                     target.add(utilityModal.setContent(
-                            new NotificationTasks(AnyTypeKind.ANY_OBJECT, model.getObject().getKey(),
-                                    pageRef)));
+                        new NotificationTasks(AnyTypeKind.ANY_OBJECT, model.getObject().getKey(),
+                            pageRef)));
                     utilityModal.header(new StringResourceModel("any.notification.tasks", model));
                     utilityModal.show(true);
                     target.add(utilityModal);
                 }
             }, ActionType.NOTIFICATION_TASKS, IdRepoEntitlement.TASK_LIST);
         }
-        panel.add(new ActionLink<AnyObjectTO>() {
+        panel.add(new ActionLink<>() {
 
-            private static final long serialVersionUID = -2878723352517770644L;
+                      private static final long serialVersionUID = -2878723352517770644L;
 
-            @Override
-            public void onClick(final AjaxRequestTarget target, final AnyObjectTO ignore) {
-                model.setObject(restClient.read(model.getObject().getKey()));
-                target.add(altDefaultModal.setContent(new AuditHistoryModal<AnyObjectTO>(
-                        altDefaultModal,
-                        AuditElements.EventCategoryType.LOGIC,
-                        "AnyObjectLogic",
-                        model.getObject(),
-                        AnyEntitlement.UPDATE.getFor(type),
-                        pageRef) {
+                      @Override
+                      public void onClick(final AjaxRequestTarget target, final AnyObjectTO ignore) {
+                          model.setObject(restClient.read(model.getObject().getKey()));
+                          target.add(altDefaultModal.setContent(new AuditHistoryModal<>(
+                              altDefaultModal,
+                              AuditElements.EventCategoryType.LOGIC,
+                              "AnyObjectLogic",
+                              model.getObject(),
+                              AnyEntitlement.UPDATE.getFor(type),
+                              pageRef) {
 
-                    private static final long serialVersionUID = -7440902560249531201L;
+                              private static final long serialVersionUID = -7440902560249531201L;
 
-                    @Override
-                    protected void restore(final String json, final AjaxRequestTarget target) {
-                        AnyObjectTO original = model.getObject();
-                        try {
-                            AnyObjectTO updated = MAPPER.readValue(json, AnyObjectTO.class);
-                            AnyObjectUR updateReq = AnyOperations.diff(updated, original, false);
-                            ProvisioningResult<AnyObjectTO> result =
-                                    restClient.update(original.getETagValue(), updateReq);
-                            model.getObject().setLastChangeDate(result.getEntity().getLastChangeDate());
+                              @Override
+                              protected void restore(final String json, final AjaxRequestTarget target) {
+                                  AnyObjectTO original = model.getObject();
+                                  try {
+                                      AnyObjectTO updated = MAPPER.readValue(json, AnyObjectTO.class);
+                                      AnyObjectUR updateReq = AnyOperations.diff(updated, original, false);
+                                      ProvisioningResult<AnyObjectTO> result =
+                                          restClient.update(original.getETagValue(), updateReq);
+                                      model.getObject().setLastChangeDate(result.getEntity().getLastChangeDate());
 
-                            SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
-                            target.add(container);
-                        } catch (Exception e) {
-                            LOG.error("While restoring any object {}", model.getObject().getKey(), e);
-                            SyncopeConsoleSession.get().onException(e);
-                        }
-                        ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
-                    }
-                }));
+                                      SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
+                                      target.add(container);
+                                  } catch (Exception e) {
+                                      LOG.error("While restoring any object {}", model.getObject().getKey(), e);
+                                      SyncopeConsoleSession.get().onException(e);
+                                  }
+                                  ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
+                              }
+                          }));
 
-                altDefaultModal.header(new StringResourceModel("auditHistory.title", model));
+                          altDefaultModal.header(new StringResourceModel("auditHistory.title", model));
 
-                altDefaultModal.show(true);
-            }
-        }, ActionType.VIEW_AUDIT_HISTORY,
+                          altDefaultModal.show(true);
+                      }
+                  }, ActionType.VIEW_AUDIT_HISTORY,
                 String.format("%s,%s", AnyEntitlement.READ.getFor(type), IdRepoEntitlement.AUDIT_LIST)).
                 setRealms(realm, model.getObject().getDynRealms());
 
-        panel.add(new ActionLink<AnyObjectTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770645L;
 
@@ -210,7 +210,7 @@
                 final AnyObjectTO clone = SerializationUtils.clone(model.getObject());
                 clone.setKey(null);
                 send(AnyObjectDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.NewItemActionEvent<>(new AnyWrapper<>(clone), target));
+                    new AjaxWizard.NewItemActionEvent<>(new AnyWrapper<>(clone), target));
             }
 
             @Override
@@ -219,7 +219,7 @@
             }
         }, ActionType.CLONE, AnyEntitlement.CREATE.getFor(type)).setRealm(realm);
 
-        panel.add(new ActionLink<AnyObjectTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770646L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java
index eedcb56..fcc1700 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypeClassesPanel.java
@@ -131,8 +131,8 @@
                     columns.add(new BooleanPropertyColumn<>(
                             new ResourceModel(field.getName()), field.getName(), field.getName()));
                 } else {
-                    columns.add(new PropertyColumn<AnyTypeClassTO, String>(
-                            new ResourceModel(field.getName()), field.getName(), field.getName()) {
+                    columns.add(new PropertyColumn<>(
+                        new ResourceModel(field.getName()), field.getName(), field.getName()) {
 
                         private static final long serialVersionUID = -6902459669035442212L;
 
@@ -141,8 +141,8 @@
                             String css = super.getCssClass();
                             if (Constants.KEY_FIELD_NAME.equals(fieldName)) {
                                 css = StringUtils.isBlank(css)
-                                        ? "col-xs-1"
-                                        : css + " col-xs-1";
+                                    ? "col-xs-1"
+                                    : css + " col-xs-1";
                             }
                             return css;
                         }
@@ -158,18 +158,18 @@
     public ActionsPanel<AnyTypeClassTO> getActions(final IModel<AnyTypeClassTO> model) {
         final ActionsPanel<AnyTypeClassTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<AnyTypeClassTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final AnyTypeClassTO ignore) {
                 send(AnyTypeClassesPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(model.getObject(), target));
+                    new AjaxWizard.EditItemActionEvent<>(model.getObject(), target));
             }
         }, ActionLink.ActionType.EDIT, IdRepoEntitlement.ANYTYPECLASS_UPDATE);
 
-        panel.add(new ActionLink<AnyTypeClassTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypesPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypesPanel.java
index 7f7e697..4f5db2f 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypesPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AnyTypesPanel.java
@@ -130,8 +130,8 @@
                     columns.add(new BooleanPropertyColumn<>(
                             new ResourceModel(field.getName()), field.getName(), field.getName()));
                 } else {
-                    columns.add(new PropertyColumn<AnyTypeTO, String>(
-                            new ResourceModel(field.getName()), field.getName(), field.getName()) {
+                    columns.add(new PropertyColumn<>(
+                        new ResourceModel(field.getName()), field.getName(), field.getName()) {
 
                         private static final long serialVersionUID = -6902459669035442212L;
 
@@ -140,8 +140,8 @@
                             String css = super.getCssClass();
                             if (Constants.KEY_FIELD_NAME.equals(fieldName)) {
                                 css = StringUtils.isBlank(css)
-                                        ? "col-xs-1"
-                                        : css + " col-xs-1";
+                                    ? "col-xs-1"
+                                    : css + " col-xs-1";
                             }
                             return css;
                         }
@@ -157,17 +157,17 @@
     public ActionsPanel<AnyTypeTO> getActions(final IModel<AnyTypeTO> model) {
         final ActionsPanel<AnyTypeTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<AnyTypeTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final AnyTypeTO ignore) {
                 send(AnyTypesPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(model.getObject(), target));
+                    new AjaxWizard.EditItemActionEvent<>(model.getObject(), target));
             }
         }, ActionLink.ActionType.EDIT, IdRepoEntitlement.ANYTYPE_UPDATE);
-        panel.add(new ActionLink<AnyTypeTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ApplicationDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ApplicationDirectoryPanel.java
index 01ae391..10be40f 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ApplicationDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ApplicationDirectoryPanel.java
@@ -63,7 +63,7 @@
 
     private static final long serialVersionUID = -5491515010207202168L;
 
-    protected final BaseModal<PrivilegeTO> privilegeModal = new BaseModal<PrivilegeTO>(Constants.OUTER) {
+    protected final BaseModal<PrivilegeTO> privilegeModal = new BaseModal<>(Constants.OUTER) {
 
         private static final long serialVersionUID = 389935548143327858L;
 
@@ -97,7 +97,7 @@
         });
         addOuterObject(privilegeModal);
 
-        AjaxLink<Void> newApplLink = new AjaxLink<Void>("add") {
+        AjaxLink<Void> newApplLink = new AjaxLink<>("add") {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
@@ -133,18 +133,18 @@
                 new ResourceModel(Constants.KEY_FIELD_NAME), Constants.KEY_FIELD_NAME, Constants.KEY_FIELD_NAME));
         columns.add(new PropertyColumn<>(new ResourceModel(Constants.DESCRIPTION_FIELD_NAME),
                 Constants.DESCRIPTION_FIELD_NAME, Constants.DESCRIPTION_FIELD_NAME));
-        columns.add(new AbstractColumn<ApplicationTO, String>(new ResourceModel("privileges")) {
+        columns.add(new AbstractColumn<>(new ResourceModel("privileges")) {
 
             private static final long serialVersionUID = 2054811145491901166L;
 
             @Override
             public void populateItem(
-                    final Item<ICellPopulator<ApplicationTO>> item,
-                    final String componentId,
-                    final IModel<ApplicationTO> rowModel) {
+                final Item<ICellPopulator<ApplicationTO>> item,
+                final String componentId,
+                final IModel<ApplicationTO> rowModel) {
 
                 item.add(new Label(componentId, '[' + rowModel.getObject().getPrivileges().stream().
-                        map(EntityTO::getKey).collect(Collectors.joining(", ")) + ']'));
+                    map(EntityTO::getKey).collect(Collectors.joining(", ")) + ']'));
             }
         });
 
@@ -155,7 +155,7 @@
     public ActionsPanel<ApplicationTO> getActions(final IModel<ApplicationTO> model) {
         final ActionsPanel<ApplicationTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<ApplicationTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
@@ -168,26 +168,26 @@
             }
         }, ActionLink.ActionType.EDIT, IdRepoEntitlement.APPLICATION_UPDATE);
 
-        panel.add(new ActionLink<ApplicationTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final ApplicationTO ignore) {
                 target.add(privilegeModal.setContent(new PrivilegeDirectoryPanel(
-                        privilegeModal, model.getObject(), pageRef)));
+                    privilegeModal, model.getObject(), pageRef)));
 
                 privilegeModal.header(new StringResourceModel(
-                        "application.privileges", ApplicationDirectoryPanel.this, Model.of(model.getObject())));
+                    "application.privileges", ApplicationDirectoryPanel.this, Model.of(model.getObject())));
 
                 MetaDataRoleAuthorizationStrategy.authorize(
-                        privilegeModal.getForm(), ENABLE, IdRepoEntitlement.APPLICATION_UPDATE);
+                    privilegeModal.getForm(), ENABLE, IdRepoEntitlement.APPLICATION_UPDATE);
 
                 privilegeModal.show(true);
             }
         }, ActionLink.ActionType.COMPOSE, IdRepoEntitlement.APPLICATION_UPDATE);
 
-        panel.add(new ActionLink<ApplicationTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = 3766262567901552032L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AttrListDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AttrListDirectoryPanel.java
index dfe285d..2092af6 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AttrListDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/AttrListDirectoryPanel.java
@@ -64,19 +64,19 @@
     protected List<IColumn<Attr, String>> getColumns() {
         final List<IColumn<Attr, String>> columns = new ArrayList<>();
         columns.add(new PropertyColumn<>(new ResourceModel("schema"), "schema"));
-        columns.add(new PropertyColumn<Attr, String>(new ResourceModel("values"), "values") {
+        columns.add(new PropertyColumn<>(new ResourceModel("values"), "values") {
 
             private static final long serialVersionUID = -1822504503325964706L;
 
             @Override
             public void populateItem(
-                    final Item<ICellPopulator<Attr>> item,
-                    final String componentId,
-                    final IModel<Attr> rowModel) {
+                final Item<ICellPopulator<Attr>> item,
+                final String componentId,
+                final IModel<Attr> rowModel) {
 
                 if (rowModel.getObject().getValues().toString().length() > 96) {
                     item.add(new Label(componentId, getString("tooLong")).
-                            add(new AttributeModifier("style", "font-style:italic")));
+                        add(new AttributeModifier("style", "font-style:italic")));
                 } else {
                     super.populateItem(item, componentId, rowModel);
                 }
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/BeanPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/BeanPanel.java
index 508f965..9a8f70c 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/BeanPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/BeanPanel.java
@@ -96,7 +96,7 @@
         this.excluded.add("serialVersionUID");
         this.excluded.add("class");
 
-        LoadableDetachableModel<List<String>> model = new LoadableDetachableModel<List<String>>() {
+        LoadableDetachableModel<List<String>> model = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
@@ -106,19 +106,19 @@
 
                 if (BeanPanel.this.getDefaultModelObject() != null) {
                     ReflectionUtils.doWithFields(BeanPanel.this.getDefaultModelObject().getClass(),
-                            field -> result.add(field.getName()),
-                            field -> !field.isSynthetic() && !BeanPanel.this.excluded.contains(field.getName()));
+                        field -> result.add(field.getName()),
+                        field -> !field.isSynthetic() && !BeanPanel.this.excluded.contains(field.getName()));
                 }
 
                 return result;
             }
         };
 
-        add(new ListView<String>("propView", model) {
+        add(new ListView<>("propView", model) {
 
             private static final long serialVersionUID = 9101744072914090143L;
 
-            @SuppressWarnings({ "unchecked", "rawtypes" })
+            @SuppressWarnings({"unchecked", "rawtypes"})
             @Override
             protected void populateItem(final ListItem<String> item) {
                 String fieldName = item.getModelObject();
@@ -146,20 +146,20 @@
                     switch (scondAnnot.type()) {
                         case "USER":
                             panel = new UserSearchPanel.Builder(
-                                    new ListModel<>(clauses)).required(false).build("value");
+                                new ListModel<>(clauses)).required(false).build("value");
                             builder = SyncopeClient.getUserSearchConditionBuilder();
                             break;
 
                         case "GROUP":
                             panel = new GroupSearchPanel.Builder(
-                                    new ListModel<>(clauses)).required(false).build("value");
+                                new ListModel<>(clauses)).required(false).build("value");
                             builder = SyncopeClient.getGroupSearchConditionBuilder();
                             break;
 
                         default:
                             panel = new AnyObjectSearchPanel.Builder(
-                                    scondAnnot.type(),
-                                    new ListModel<>(clauses)).required(false).build("value");
+                                scondAnnot.type(),
+                                new ListModel<>(clauses)).required(false).build("value");
                             builder = SyncopeClient.getAnyObjectSearchConditionBuilder(null);
                     }
 
@@ -170,7 +170,7 @@
                     Class<?> listItemType = String.class;
                     if (field.getGenericType() instanceof ParameterizedType) {
                         listItemType = (Class<?>) ((ParameterizedType) field.getGenericType()).
-                                getActualTypeArguments()[0];
+                            getActualTypeArguments()[0];
                     }
 
                     if (listItemType.equals(String.class) && schemaAnnot != null) {
@@ -180,17 +180,17 @@
                             switch (type) {
                                 case PLAIN:
                                     choices.addAll(
-                                            SchemaRestClient.getSchemas(SchemaType.PLAIN, schemaAnnot.anyTypeKind()));
+                                        SchemaRestClient.getSchemas(SchemaType.PLAIN, schemaAnnot.anyTypeKind()));
                                     break;
 
                                 case DERIVED:
                                     choices.addAll(
-                                            SchemaRestClient.getSchemas(SchemaType.DERIVED, schemaAnnot.anyTypeKind()));
+                                        SchemaRestClient.getSchemas(SchemaType.DERIVED, schemaAnnot.anyTypeKind()));
                                     break;
 
                                 case VIRTUAL:
                                     choices.addAll(
-                                            SchemaRestClient.getSchemas(SchemaType.VIRTUAL, schemaAnnot.anyTypeKind()));
+                                        SchemaRestClient.getSchemas(SchemaType.VIRTUAL, schemaAnnot.anyTypeKind()));
                                     break;
 
                                 default:
@@ -198,25 +198,25 @@
                         }
 
                         panel = new AjaxPalettePanel.Builder<>().setName(fieldName).build(
-                                "value",
-                                new PropertyModel<>(bean.getObject(), fieldName),
-                                new ListModel<>(choices.stream().map(EntityTO::getKey).collect(Collectors.toList()))).
-                                hideLabel();
+                            "value",
+                            new PropertyModel<>(bean.getObject(), fieldName),
+                            new ListModel<>(choices.stream().map(EntityTO::getKey).collect(Collectors.toList()))).
+                            hideLabel();
                     } else if (listItemType.isEnum()) {
                         panel = new AjaxPalettePanel.Builder<>().setName(fieldName).build(
-                                "value",
-                                new PropertyModel<>(bean.getObject(), fieldName),
-                                new ListModel(List.of(listItemType.getEnumConstants()))).hideLabel();
+                            "value",
+                            new PropertyModel<>(bean.getObject(), fieldName),
+                            new ListModel(List.of(listItemType.getEnumConstants()))).hideLabel();
                     } else {
                         panel = new MultiFieldPanel.Builder<>(
-                                new PropertyModel<>(bean.getObject(), fieldName)).build(
-                                "value",
-                                fieldName,
-                                buildSinglePanel(bean.getObject(), listItemType, fieldName, "panel")).hideLabel();
+                            new PropertyModel<>(bean.getObject(), fieldName)).build(
+                            "value",
+                            fieldName,
+                            buildSinglePanel(bean.getObject(), listItemType, fieldName, "panel")).hideLabel();
                     }
                 } else if (Map.class.equals(field.getType())) {
                     panel = new AjaxGridFieldPanel(
-                            "value", fieldName, new PropertyModel<>(bean, fieldName)).hideLabel();
+                        "value", fieldName, new PropertyModel<>(bean, fieldName)).hideLabel();
                 } else {
                     panel = buildSinglePanel(bean.getObject(), field.getType(), fieldName, "value").hideLabel();
                 }
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DashboardExtensionsPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DashboardExtensionsPanel.java
index c0b0e1d..c384377 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DashboardExtensionsPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DashboardExtensionsPanel.java
@@ -60,7 +60,7 @@
             }
         });
 
-        ListView<BaseExtWidget> widgets = new ListView<BaseExtWidget>("widgets", instances) {
+        ListView<BaseExtWidget> widgets = new ListView<>("widgets", instances) {
 
             private static final long serialVersionUID = 4949588177564901031L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DataTablePanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DataTablePanel.java
index beecb80..109803c 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DataTablePanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DataTablePanel.java
@@ -44,7 +44,7 @@
     public DataTablePanel(final String id) {
         super(id);
 
-        model = new IModel<Collection<T>>() {
+        model = new IModel<>() {
 
             private static final long serialVersionUID = 4886729136344643465L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DelegationDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DelegationDirectoryPanel.java
index fea07cf..7297e44 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DelegationDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DelegationDirectoryPanel.java
@@ -95,13 +95,13 @@
         columns.add(new KeyPropertyColumn<>(
                 new ResourceModel(Constants.KEY_FIELD_NAME), Constants.KEY_FIELD_NAME, Constants.KEY_FIELD_NAME));
 
-        columns.add(new AbstractColumn<DelegationTO, String>(new ResourceModel("delegating"), "delegating") {
+        columns.add(new AbstractColumn<>(new ResourceModel("delegating"), "delegating") {
 
             @Override
             public void populateItem(
-                    final Item<ICellPopulator<DelegationTO>> cellItem,
-                    final String componentId,
-                    final IModel<DelegationTO> rowModel) {
+                final Item<ICellPopulator<DelegationTO>> cellItem,
+                final String componentId,
+                final IModel<DelegationTO> rowModel) {
 
                 String delegating = rowModel.getObject().getDelegating();
                 if (SyncopeConsoleSession.get().owns(IdRepoEntitlement.USER_READ)) {
@@ -114,13 +114,13 @@
             }
         });
 
-        columns.add(new AbstractColumn<DelegationTO, String>(new ResourceModel("delegated"), "delegated") {
+        columns.add(new AbstractColumn<>(new ResourceModel("delegated"), "delegated") {
 
             @Override
             public void populateItem(
-                    final Item<ICellPopulator<DelegationTO>> cellItem,
-                    final String componentId,
-                    final IModel<DelegationTO> rowModel) {
+                final Item<ICellPopulator<DelegationTO>> cellItem,
+                final String componentId,
+                final IModel<DelegationTO> rowModel) {
 
                 String delegated = rowModel.getObject().getDelegated();
                 if (SyncopeConsoleSession.get().owns(IdRepoEntitlement.USER_READ)) {
@@ -146,17 +146,17 @@
     public ActionsPanel<DelegationTO> getActions(final IModel<DelegationTO> model) {
         ActionsPanel<DelegationTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<DelegationTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final DelegationTO ignore) {
                 send(DelegationDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(model.getObject(), target));
+                    new AjaxWizard.EditItemActionEvent<>(model.getObject(), target));
             }
         }, ActionLink.ActionType.EDIT, StringUtils.EMPTY);
-        panel.add(new ActionLink<DelegationTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DelegationSelectionPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DelegationSelectionPanel.java
index 680d8fe..4d89c84 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DelegationSelectionPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DelegationSelectionPanel.java
@@ -34,22 +34,22 @@
         super(id);
 
         IndicatingOnConfirmAjaxLink<String> link =
-                new IndicatingOnConfirmAjaxLink<String>("link", "confirmDelegation", true) {
+            new IndicatingOnConfirmAjaxLink<>("link", "confirmDelegation", true) {
 
-            @Override
-            public void onClick(final AjaxRequestTarget target) {
-                SyncopeConsoleSession.get().setDelegatedBy(delegating);
-                setResponsePage(Dashboard.class);
-            }
-
-            @Override
-            protected void onComponentTag(final ComponentTag tag) {
-                super.onComponentTag(tag);
-                if (delegating.equals(SyncopeConsoleSession.get().getDelegatedBy())) {
-                    tag.append("class", "disabled", " ");
+                @Override
+                public void onClick(final AjaxRequestTarget target) {
+                    SyncopeConsoleSession.get().setDelegatedBy(delegating);
+                    setResponsePage(Dashboard.class);
                 }
-            }
-        };
+
+                @Override
+                protected void onComponentTag(final ComponentTag tag) {
+                    super.onComponentTag(tag);
+                    if (delegating.equals(SyncopeConsoleSession.get().getDelegatedBy())) {
+                        tag.append("class", "disabled", " ");
+                    }
+                }
+            };
         add(link);
         link.setOutputMarkupId(true);
         link.add(new Label("label", delegating));
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java
index fae6887..85f0a51 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DirectoryPanel.java
@@ -241,7 +241,7 @@
     protected ActionsPanel<Serializable> getHeader(final String componentId) {
         final ActionsPanel<Serializable> panel = new ActionsPanel<>(componentId, null);
 
-        panel.add(new ActionLink<Serializable>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
@@ -277,8 +277,8 @@
                 .map(table -> (create ? (int) table.getPageCount() - 1 : (int) table.getCurrentPage())).orElse(0);
 
         // take care of restClient handle: maybe not useful to keep into
-        AjaxDataTablePanel.Builder<T, String> resultTableBuilder = new AjaxDataTablePanel.Builder<T, String>(
-                dataProvider, page.getPageReference()) {
+        AjaxDataTablePanel.Builder<T, String> resultTableBuilder = new AjaxDataTablePanel.Builder<>(
+            dataProvider, page.getPageReference()) {
 
             private static final long serialVersionUID = 2205322679547329123L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DisplayAttributesModalPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DisplayAttributesModalPanel.java
index 2f09e35..d682061 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DisplayAttributesModalPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DisplayAttributesModalPanel.java
@@ -82,7 +82,7 @@
         Collections.sort(pSchemaNames);
         Collections.sort(dSchemaNames);
 
-        final IModel<List<String>> fnames = new LoadableDetachableModel<List<String>>() {
+        final IModel<List<String>> fnames = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
@@ -92,7 +92,7 @@
             }
         };
 
-        final IModel<List<String>> psnames = new LoadableDetachableModel<List<String>>() {
+        final IModel<List<String>> psnames = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
@@ -102,7 +102,7 @@
             }
         };
 
-        final IModel<List<String>> dsnames = new LoadableDetachableModel<List<String>>() {
+        final IModel<List<String>> dsnames = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DomainDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DomainDirectoryPanel.java
index 85a2f10..69ccf4b 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DomainDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DomainDirectoryPanel.java
@@ -101,7 +101,7 @@
     protected ActionsPanel<Domain> getActions(final IModel<Domain> model) {
         ActionsPanel<Domain> panel = super.getActions(model);
 
-        panel.add(new ActionLink<Domain>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = 7610801302168867641L;
 
@@ -114,7 +114,7 @@
             }
         }, ActionLink.ActionType.EDIT, IdRepoEntitlement.KEYMASTER);
 
-        panel.add(new ActionLink<Domain>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = 7610801302168867641L;
 
@@ -127,7 +127,7 @@
             }
         }, ActionLink.ActionType.PASSWORD_MANAGEMENT, IdRepoEntitlement.KEYMASTER);
 
-        panel.add(new ActionLink<Domain>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -191,7 +191,7 @@
 
         @Override
         public IModel<Domain> model(final Domain object) {
-            return new IModel<Domain>() {
+            return new IModel<>() {
 
                 private static final long serialVersionUID = 8093553921710742624L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DynRealmDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DynRealmDirectoryPanel.java
index a828115..676347d 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DynRealmDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DynRealmDirectoryPanel.java
@@ -71,7 +71,7 @@
         });
         setFooterVisibility(true);
 
-        AjaxLink<Void> newDynRealmlLink = new AjaxLink<Void>("add") {
+        AjaxLink<Void> newDynRealmlLink = new AjaxLink<>("add") {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
@@ -113,7 +113,7 @@
     public ActionsPanel<DynRealmTO> getActions(final IModel<DynRealmTO> model) {
         final ActionsPanel<DynRealmTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<DynRealmTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
@@ -126,7 +126,7 @@
             }
         }, ActionLink.ActionType.EDIT, IdRepoEntitlement.DYNREALM_UPDATE);
 
-        panel.add(new ActionLink<DynRealmTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = 3766262567901552032L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DynRealmModalPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DynRealmModalPanel.java
index 9c1c052..e3d5f41 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DynRealmModalPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/DynRealmModalPanel.java
@@ -71,7 +71,7 @@
         key.setRequired(true);
         add(key);
 
-        final LoadableDetachableModel<List<AnyTypeTO>> types = new LoadableDetachableModel<List<AnyTypeTO>>() {
+        final LoadableDetachableModel<List<AnyTypeTO>> types = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
@@ -81,7 +81,7 @@
             }
         };
 
-        add(new ListView<AnyTypeTO>("dynMembershipCond", types) {
+        add(new ListView<>("dynMembershipCond", types) {
 
             private static final long serialVersionUID = 9101744072914090143L;
 
@@ -89,33 +89,33 @@
             protected void populateItem(final ListItem<AnyTypeTO> item) {
                 final String key = item.getModelObject().getKey();
                 item.add(new Accordion("dynMembershipCond", List.of(
-                        new AbstractTab(Model.of(key + " Dynamic Condition")) {
+                    new AbstractTab(Model.of(key + " Dynamic Condition")) {
 
-                    private static final long serialVersionUID = 1037272333056449378L;
+                        private static final long serialVersionUID = 1037272333056449378L;
 
-                    @Override
-                    public Panel getPanel(final String panelId) {
-                        switch (item.getModelObject().getKind()) {
-                            case USER:
-                                return new UserSearchPanel.Builder(
+                        @Override
+                        public Panel getPanel(final String panelId) {
+                            switch (item.getModelObject().getKind()) {
+                                case USER:
+                                    return new UserSearchPanel.Builder(
                                         new MapOfListModel<>(dynRealmWrapper, "dynClauses", key)).
                                         required(false).build(panelId);
 
-                            case GROUP:
-                                return new GroupSearchPanel.Builder(
+                                case GROUP:
+                                    return new GroupSearchPanel.Builder(
                                         new MapOfListModel<>(dynRealmWrapper, "dynClauses", key)).
                                         required(false).build(panelId);
 
-                            case ANY_OBJECT:
-                            default:
-                                return new AnyObjectSearchPanel.Builder(
+                                case ANY_OBJECT:
+                                default:
+                                    return new AnyObjectSearchPanel.Builder(
                                         key,
                                         new MapOfListModel<>(dynRealmWrapper, "dynClauses", key)).
                                         required(false).build(panelId);
+                            }
                         }
-                    }
-                }), Model.of(StringUtils.isBlank(dynRealmWrapper.getDynMembershipConds().get(key)) ? -1 : 0)).
-                        setOutputMarkupId(true));
+                    }), Model.of(StringUtils.isBlank(dynRealmWrapper.getDynMembershipConds().get(key)) ? -1 : 0)).
+                    setOutputMarkupId(true));
             }
         });
     }
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java
index 503a49d..fce6681 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/GroupDirectoryPanel.java
@@ -188,14 +188,14 @@
     public ActionsPanel<Serializable> getHeader(final String componentId) {
         final ActionsPanel<Serializable> panel = super.getHeader(componentId);
 
-        panel.add(new ActionLink<Serializable>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
                 target.add(displayAttributeModal.setContent(new GroupDisplayAttributesModalPanel<>(
-                        displayAttributeModal, page.getPageReference(), pSchemaNames, dSchemaNames)));
+                    displayAttributeModal, page.getPageReference(), pSchemaNames, dSchemaNames)));
                 displayAttributeModal.header(new ResourceModel("any.attr.display"));
                 displayAttributeModal.show(true);
             }
@@ -207,88 +207,88 @@
     public ActionsPanel<GroupTO> getActions(final IModel<GroupTO> model) {
         final ActionsPanel<GroupTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<GroupTO>() {
+        panel.add(new ActionLink<>() {
 
-            private static final long serialVersionUID = -7978723352517770644L;
+                      private static final long serialVersionUID = -7978723352517770644L;
 
-            @Override
-            public void onClick(final AjaxRequestTarget target, final GroupTO ignore) {
-                send(GroupDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(new GroupWrapper(
-                                restClient.read(model.getObject().getKey())), target));
-            }
-        }, ActionType.EDIT,
+                      @Override
+                      public void onClick(final AjaxRequestTarget target, final GroupTO ignore) {
+                          send(GroupDirectoryPanel.this, Broadcast.EXACT,
+                              new AjaxWizard.EditItemActionEvent<>(new GroupWrapper(
+                                  restClient.read(model.getObject().getKey())), target));
+                      }
+                  }, ActionType.EDIT,
                 String.format("%s,%s", IdRepoEntitlement.GROUP_READ, IdRepoEntitlement.GROUP_UPDATE)).
                 setRealms(realm, model.getObject().getDynRealms());
 
-        panel.add(new ActionLink<GroupTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = 6242834621660352855L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final GroupTO ignore) {
                 target.add(typeExtensionsModal.setContent(new TypeExtensionDirectoryPanel(
-                        typeExtensionsModal, model.getObject(), pageRef)));
+                    typeExtensionsModal, model.getObject(), pageRef)));
                 typeExtensionsModal.header(new StringResourceModel("typeExtensions", model));
                 typeExtensionsModal.show(true);
             }
         }, ActionType.TYPE_EXTENSIONS, IdRepoEntitlement.GROUP_UPDATE).
                 setRealms(realm, model.getObject().getDynRealms());
 
-        panel.add(new ActionLink<GroupTO>() {
+        panel.add(new ActionLink<>() {
 
-            private static final long serialVersionUID = -7978723352517770645L;
+                      private static final long serialVersionUID = -7978723352517770645L;
 
-            @Override
-            public void onClick(final AjaxRequestTarget target, final GroupTO ignore) {
-                templates.setTargetObject(model.getObject());
-                templates.toggle(target, true);
-            }
+                      @Override
+                      public void onClick(final AjaxRequestTarget target, final GroupTO ignore) {
+                          templates.setTargetObject(model.getObject());
+                          templates.toggle(target, true);
+                      }
 
-            @Override
-            public boolean isIndicatorEnabled() {
-                return false;
-            }
-        }, ActionType.MEMBERS,
+                      @Override
+                      public boolean isIndicatorEnabled() {
+                          return false;
+                      }
+                  }, ActionType.MEMBERS,
                 String.format("%s,%s", IdRepoEntitlement.GROUP_READ, IdRepoEntitlement.GROUP_UPDATE)).
                 setRealms(realm, model.getObject().getDynRealms());
 
-        panel.add(new ActionLink<GroupTO>() {
+        panel.add(new ActionLink<>() {
 
-            private static final long serialVersionUID = -7978723352517770644L;
+                      private static final long serialVersionUID = -7978723352517770644L;
 
-            @Override
-            public void onClick(final AjaxRequestTarget target, final GroupTO ignore) {
-                try {
-                    SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
-                    target.add(container);
-                } catch (SyncopeClientException e) {
-                    LOG.error("While provisioning members of group {}", model.getObject().getKey(), e);
-                    SyncopeConsoleSession.get().onException(e);
-                }
-                ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
-            }
-        }, ActionType.PROVISION_MEMBERS,
+                      @Override
+                      public void onClick(final AjaxRequestTarget target, final GroupTO ignore) {
+                          try {
+                              SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
+                              target.add(container);
+                          } catch (SyncopeClientException e) {
+                              LOG.error("While provisioning members of group {}", model.getObject().getKey(), e);
+                              SyncopeConsoleSession.get().onException(e);
+                          }
+                          ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
+                      }
+                  }, ActionType.PROVISION_MEMBERS,
                 String.format("%s,%s", IdRepoEntitlement.TASK_CREATE, IdRepoEntitlement.TASK_EXECUTE)).
                 setRealm(realm);
 
-        panel.add(new ActionLink<GroupTO>() {
+        panel.add(new ActionLink<>() {
 
-            private static final long serialVersionUID = -7978723352517770644L;
+                      private static final long serialVersionUID = -7978723352517770644L;
 
-            @Override
-            public void onClick(final AjaxRequestTarget target, final GroupTO ignore) {
-                try {
-                    GroupRestClient.provisionMembers(model.getObject().getKey(), ProvisionAction.DEPROVISION);
-                    SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
-                    target.add(container);
-                } catch (SyncopeClientException e) {
-                    LOG.error("While provisioning members of group {}", model.getObject().getKey(), e);
-                    SyncopeConsoleSession.get().onException(e);
-                }
-                ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
-            }
-        }, ActionType.DEPROVISION_MEMBERS,
+                      @Override
+                      public void onClick(final AjaxRequestTarget target, final GroupTO ignore) {
+                          try {
+                              GroupRestClient.provisionMembers(model.getObject().getKey(), ProvisionAction.DEPROVISION);
+                              SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
+                              target.add(container);
+                          } catch (SyncopeClientException e) {
+                              LOG.error("While provisioning members of group {}", model.getObject().getKey(), e);
+                              SyncopeConsoleSession.get().onException(e);
+                          }
+                          ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
+                      }
+                  }, ActionType.DEPROVISION_MEMBERS,
                 String.format("%s,%s", IdRepoEntitlement.TASK_CREATE, IdRepoEntitlement.TASK_EXECUTE)).
                 setRealm(realm);
 
@@ -300,78 +300,79 @@
                 this,
                 pageRef).forEach(panel::add);
 
-        panel.add(new ActionLink<GroupTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final GroupTO ignore) {
                 target.add(utilityModal.setContent(new AnyPropagationTasks(
-                        utilityModal, AnyTypeKind.GROUP, model.getObject().getKey(), pageRef)));
+                    utilityModal, AnyTypeKind.GROUP, model.getObject().getKey(), pageRef)));
                 utilityModal.header(new StringResourceModel("any.propagation.tasks", model));
                 utilityModal.show(true);
             }
         }, ActionType.PROPAGATION_TASKS, IdRepoEntitlement.TASK_LIST);
 
-        panel.add(new ActionLink<GroupTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final GroupTO ignore) {
                 target.add(utilityModal.setContent(
-                        new NotificationTasks(AnyTypeKind.GROUP, model.getObject().getKey(), pageRef)));
+                    new NotificationTasks(AnyTypeKind.GROUP, model.getObject().getKey(), pageRef)));
                 utilityModal.header(new StringResourceModel("any.notification.tasks", model));
                 utilityModal.show(true);
             }
         }, ActionType.NOTIFICATION_TASKS, IdRepoEntitlement.TASK_LIST);
 
-        panel.add(new ActionLink<GroupTO>() {
+        panel.add(new ActionLink<>() {
 
-            private static final long serialVersionUID = -2878723352517770644L;
+                  private static final long serialVersionUID = -2878723352517770644L;
 
-            @Override
-            public void onClick(final AjaxRequestTarget target, final GroupTO ignore) {
-                model.setObject(restClient.read(model.getObject().getKey()));
-                target.add(altDefaultModal.setContent(new AuditHistoryModal<GroupTO>(
-                        altDefaultModal,
-                        AuditElements.EventCategoryType.LOGIC,
-                        "GroupLogic",
-                        model.getObject(),
-                        IdRepoEntitlement.GROUP_UPDATE,
-                        pageRef) {
+                  @Override
+                  public void onClick(final AjaxRequestTarget target, final GroupTO ignore) {
+                      model.setObject(restClient.read(model.getObject().getKey()));
+                      target.add(altDefaultModal.setContent(new AuditHistoryModal<>(
+                          altDefaultModal,
+                          AuditElements.EventCategoryType.LOGIC,
+                          "GroupLogic",
+                          model.getObject(),
+                          IdRepoEntitlement.GROUP_UPDATE,
+                          pageRef) {
 
-                    private static final long serialVersionUID = -5819724478921691835L;
+                          private static final long serialVersionUID = -5819724478921691835L;
 
-                    @Override
-                    protected void restore(final String json, final AjaxRequestTarget target) {
-                        GroupTO original = model.getObject();
-                        try {
-                            GroupTO updated = MAPPER.readValue(json, GroupTO.class);
-                            GroupUR updateReq = AnyOperations.diff(updated, original, false);
-                            ProvisioningResult<GroupTO> result = restClient.update(original.getETagValue(), updateReq);
-                            model.getObject().setLastChangeDate(result.getEntity().getLastChangeDate());
+                          @Override
+                          protected void restore(final String json, final AjaxRequestTarget target) {
+                              GroupTO original = model.getObject();
+                              try {
+                                  GroupTO updated = MAPPER.readValue(json, GroupTO.class);
+                                  GroupUR updateReq = AnyOperations.diff(updated, original, false);
+                                  ProvisioningResult<GroupTO> result =
+                                      restClient.update(original.getETagValue(), updateReq);
+                                  model.getObject().setLastChangeDate(result.getEntity().getLastChangeDate());
 
-                            SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
-                            target.add(container);
-                        } catch (Exception e) {
-                            LOG.error("While restoring group {}", model.getObject().getKey(), e);
-                            SyncopeConsoleSession.get().onException(e);
-                        }
-                        ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
-                    }
-                }));
+                                  SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
+                                  target.add(container);
+                              } catch (Exception e) {
+                                  LOG.error("While restoring group {}", model.getObject().getKey(), e);
+                                  SyncopeConsoleSession.get().onException(e);
+                              }
+                              ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
+                          }
+                      }));
 
-                altDefaultModal.header(new Model<>(
-                        getString("auditHistory.title", new Model<>(new AnyWrapper<>(model.getObject())))));
+                      altDefaultModal.header(new Model<>(
+                          getString("auditHistory.title", new Model<>(new AnyWrapper<>(model.getObject())))));
 
-                altDefaultModal.show(true);
-            }
-        }, ActionType.VIEW_AUDIT_HISTORY,
-                String.format("%s,%s", IdRepoEntitlement.GROUP_READ, IdRepoEntitlement.AUDIT_LIST)).
-                setRealms(realm, model.getObject().getDynRealms());
+                      altDefaultModal.show(true);
+                  }
+              }, ActionType.VIEW_AUDIT_HISTORY,
+            String.format("%s,%s", IdRepoEntitlement.GROUP_READ, IdRepoEntitlement.AUDIT_LIST)).
+            setRealms(realm, model.getObject().getDynRealms());
 
-        panel.add(new ActionLink<GroupTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = 6242834621660352855L;
 
@@ -380,7 +381,7 @@
                 GroupTO clone = SerializationUtils.clone(model.getObject());
                 clone.setKey(null);
                 send(GroupDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.NewItemActionEvent<>(new GroupWrapper(clone), target));
+                    new AjaxWizard.NewItemActionEvent<>(new GroupWrapper(clone), target));
             }
 
             @Override
@@ -389,7 +390,7 @@
             }
         }, ActionType.CLONE, IdRepoEntitlement.GROUP_CREATE).setRealm(realm);
 
-        panel.add(new ActionLink<GroupTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ImplementationDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ImplementationDirectoryPanel.java
index 68d85df..4eea733 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ImplementationDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ImplementationDirectoryPanel.java
@@ -99,14 +99,14 @@
         };
         addInnerObject(engineTogglePanel);
 
-        AjaxLink<Void> replaceAddLink = new AjaxLink<Void>("add") {
+        AjaxLink<Void> replaceAddLink = new AjaxLink<>("add") {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
             @Override
             public void onClick(final AjaxRequestTarget target) {
                 send(ImplementationDirectoryPanel.this, Broadcast.BREADTH,
-                        new ActionLinksTogglePanel.ActionLinkToggleCloseEventPayload(target));
+                    new ActionLinksTogglePanel.ActionLinkToggleCloseEventPayload(target));
                 engineTogglePanel.setHeaderLabel(target);
                 engineTogglePanel.toggle(target, true);
             }
@@ -132,20 +132,20 @@
     protected ActionsPanel<ImplementationTO> getActions(final IModel<ImplementationTO> model) {
         final ActionsPanel<ImplementationTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<ImplementationTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770645L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final ImplementationTO ignore) {
                 target.add(modal.setContent(
-                        new ImplementationModalPanel(modal, model.getObject(), pageRef)));
+                    new ImplementationModalPanel(modal, model.getObject(), pageRef)));
                 modal.header(new StringResourceModel("any.edit", Model.of(model.getObject())));
                 modal.show(true);
             }
         }, ActionLink.ActionType.EDIT, IdRepoEntitlement.IMPLEMENTATION_UPDATE);
 
-        panel.add(new ActionLink<ImplementationTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -208,7 +208,7 @@
 
         @Override
         public IModel<ImplementationTO> model(final ImplementationTO implementation) {
-            return new IModel<ImplementationTO>() {
+            return new IModel<>() {
 
                 private static final long serialVersionUID = 999513782683391483L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ListViewPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ListViewPanel.java
index 375532a..f3aeace 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ListViewPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ListViewPanel.java
@@ -165,21 +165,21 @@
 
         addInnerObject(header(toBeIncluded));
 
-        beans = new ListView<T>("beans", listOfItems) {
+        beans = new ListView<>("beans", listOfItems) {
 
             private static final long serialVersionUID = -9112553137618363167L;
 
             @Override
             protected void populateItem(final ListItem<T> beanItem) {
                 beanItem.add(new Check<>("check", beanItem.getModel(), checkGroup).setOutputMarkupId(true).
-                        setOutputMarkupPlaceholderTag(true).
-                        setVisible(ListViewPanel.this.check.getObject() == CheckAvailability.AVAILABLE
-                                || ListViewPanel.this.check.getObject() == CheckAvailability.DISABLED).
-                        setEnabled(ListViewPanel.this.check.getObject() == CheckAvailability.AVAILABLE));
+                    setOutputMarkupPlaceholderTag(true).
+                    setVisible(ListViewPanel.this.check.getObject() == CheckAvailability.AVAILABLE
+                        || ListViewPanel.this.check.getObject() == CheckAvailability.DISABLED).
+                    setEnabled(ListViewPanel.this.check.getObject() == CheckAvailability.AVAILABLE));
 
                 final T bean = beanItem.getModelObject();
 
-                final ListView<String> fields = new ListView<String>("fields", toBeIncluded) {
+                final ListView<String> fields = new ListView<>("fields", toBeIncluded) {
 
                     private static final long serialVersionUID = -9112553137618363167L;
 
@@ -200,9 +200,9 @@
                                 @Override
                                 protected void onEvent(final AjaxRequestTarget target) {
                                     togglePanel.toggleWithContent(
-                                            target,
-                                            actions.cloneWithLabels("actions", new Model<>(bean)),
-                                            bean);
+                                        target,
+                                        actions.cloneWithLabels("actions", new Model<>(bean)),
+                                        bean);
                                 }
                             });
                         }
@@ -225,14 +225,14 @@
     }
 
     private static ListView<String> header(final List<String> labels) {
-        return new ListView<String>("names", labels) {
+        return new ListView<>("names", labels) {
 
             private static final long serialVersionUID = -9112553137618363167L;
 
             @Override
             protected void populateItem(final ListItem<String> item) {
                 item.add(new Label(Constants.NAME_FIELD_NAME,
-                        new ResourceModel(item.getModelObject(), item.getModelObject())));
+                    new ResourceModel(item.getModelObject(), item.getModelObject())));
             }
         };
     }
@@ -423,8 +423,8 @@
 
         @Override
         protected WizardMgtPanel<T> newInstance(final String id, final boolean wizardInModal) {
-            return new ListViewPanel<T>(
-                    id, items, reference, includes, actions, check, reuseItem, wizardInModal, captionVisible, model) {
+            return new ListViewPanel<>(
+                id, items, reference, includes, actions, check, reuseItem, wizardInModal, captionVisible, model) {
 
                 private static final long serialVersionUID = -1715389337530657988L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/LogsPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/LogsPanel.java
index 40ab747..866b853 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/LogsPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/LogsPanel.java
@@ -55,7 +55,7 @@
 
     private static final Logger LOG = LoggerFactory.getLogger(LogsPanel.class);
 
-    private final IModel<List<LoggerConf>> loggerConfs = new LoadableDetachableModel<List<LoggerConf>>() {
+    private final IModel<List<LoggerConf>> loggerConfs = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = 5275935387613157437L;
 
@@ -99,7 +99,7 @@
         WebMarkupContainer loggerContainer = new WebMarkupContainer("loggerContainer");
         add(loggerContainer.setOutputMarkupId(true));
 
-        ListViewPanel.Builder<LoggerConf> builder = new ListViewPanel.Builder<LoggerConf>(LoggerConf.class, pageRef) {
+        ListViewPanel.Builder<LoggerConf> builder = new ListViewPanel.Builder<>(LoggerConf.class, pageRef) {
 
             private static final long serialVersionUID = 6957788356709885298L;
 
@@ -107,7 +107,7 @@
             protected Component getValueComponent(final String key, final LoggerConf loggerConf) {
                 if ("level".equalsIgnoreCase(key)) {
                     AjaxDropDownChoicePanel<LogLevel> loggerLevel = new AjaxDropDownChoicePanel<>(
-                            "field", getString("level"), Model.of(loggerConf.getLevel()), false);
+                        "field", getString("level"), Model.of(loggerConf.getLevel()), false);
                     MetaDataRoleAuthorizationStrategy.authorize(loggerLevel, ENABLE, IdRepoEntitlement.LOGGER_UPDATE);
 
                     loggerLevel.hideLabel();
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/MembersTogglePanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/MembersTogglePanel.java
index c20adb7..f16698b 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/MembersTogglePanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/MembersTogglePanel.java
@@ -47,14 +47,14 @@
 
     protected final Model<String> typeModel = new Model<>();
 
-    private final LoadableDetachableModel<List<String>> anyTypes = new LoadableDetachableModel<List<String>>() {
+    private final LoadableDetachableModel<List<String>> anyTypes = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = 5275935387613157437L;
 
         @Override
         protected List<String> load() {
             return AnyTypeRestClient.list().stream().
-                    filter(anyType -> !AnyTypeKind.GROUP.name().equals(anyType)).collect(Collectors.toList());
+                filter(anyType -> !AnyTypeKind.GROUP.name().equals(anyType)).collect(Collectors.toList());
         }
     };
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/NetworkServiceDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/NetworkServiceDirectoryPanel.java
index 86a1414..cd21fad 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/NetworkServiceDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/NetworkServiceDirectoryPanel.java
@@ -121,7 +121,7 @@
 
         @Override
         public IModel<NetworkService> model(final NetworkService service) {
-            return new IModel<NetworkService>() {
+            return new IModel<>() {
 
                 private static final long serialVersionUID = 999513782683391483L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersDirectoryPanel.java
index 7545c03..40704f7 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersDirectoryPanel.java
@@ -63,7 +63,7 @@
     private ConfParamOps confParamOps;
 
     public ParametersDirectoryPanel(final String id, final PageReference pageRef) {
-        super(id, new Builder<ConfParam, ConfParam, SyncopeRestClient>(new SyncopeRestClient(), pageRef) {
+        super(id, new Builder<>(new SyncopeRestClient(), pageRef) {
 
             private static final long serialVersionUID = 8769126634538601689L;
 
@@ -112,19 +112,19 @@
     protected List<IColumn<ConfParam, String>> getColumns() {
         final List<IColumn<ConfParam, String>> columns = new ArrayList<>();
         columns.add(new PropertyColumn<>(new ResourceModel("schema"), "schema"));
-        columns.add(new PropertyColumn<ConfParam, String>(new ResourceModel("values"), "values") {
+        columns.add(new PropertyColumn<>(new ResourceModel("values"), "values") {
 
             private static final long serialVersionUID = -1822504503325964706L;
 
             @Override
             public void populateItem(
-                    final Item<ICellPopulator<ConfParam>> item,
-                    final String componentId,
-                    final IModel<ConfParam> rowModel) {
+                final Item<ICellPopulator<ConfParam>> item,
+                final String componentId,
+                final IModel<ConfParam> rowModel) {
 
                 if (rowModel.getObject().getValues().toString().length() > 96) {
                     item.add(new Label(componentId, getString("tooLong")).
-                            add(new AttributeModifier("style", "font-style:italic")));
+                        add(new AttributeModifier("style", "font-style:italic")));
                 } else {
                     super.populateItem(item, componentId, rowModel);
                 }
@@ -137,7 +137,7 @@
     public ActionsPanel<ConfParam> getActions(final IModel<ConfParam> model) {
         final ActionsPanel<ConfParam> panel = super.getActions(model);
 
-        panel.add(new ActionLink<ConfParam>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -146,12 +146,12 @@
                 target.add(modal);
                 modal.header(new StringResourceModel("any.edit"));
                 modal.setContent(new ParametersModalPanel(
-                        modal, model.getObject(), confParamOps, AjaxWizard.Mode.EDIT, pageRef));
+                    modal, model.getObject(), confParamOps, AjaxWizard.Mode.EDIT, pageRef));
                 modal.show(true);
             }
         }, ActionLink.ActionType.EDIT, null);
 
-        panel.add(new ActionLink<ConfParam>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersWizardAttrStep.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersWizardAttrStep.java
index 56986f4..de61f0f 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersWizardAttrStep.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/ParametersWizardAttrStep.java
@@ -65,7 +65,7 @@
         schema.setReadOnly(mode != AjaxWizard.Mode.CREATE);
         content.add(schema);
 
-        LoadableDetachableModel<List<PlainSchemaTO>> schemas = new LoadableDetachableModel<List<PlainSchemaTO>>() {
+        LoadableDetachableModel<List<PlainSchemaTO>> schemas = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 7172461137064525667L;
 
@@ -75,7 +75,7 @@
             }
         };
 
-        ListView<PlainSchemaTO> attrs = new ListView<PlainSchemaTO>("attrs", schemas) {
+        ListView<PlainSchemaTO> attrs = new ListView<>("attrs", schemas) {
 
             private static final long serialVersionUID = 9101744072914090143L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java
index 83bbcb6..cfcf5f7 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java
@@ -95,14 +95,14 @@
         AjaxTextFieldPanel enumerationValuesPanel = new AjaxTextFieldPanel("panel",
                 "enumerationValues", new Model<>(null));
 
-        enumerationValues = new MultiFieldPanel.Builder<String>(
+        enumerationValues = new MultiFieldPanel.Builder<>(
                 new PropertyModel<List<String>>(schemaTO, "enumerationValues") {
 
             private static final long serialVersionUID = -4953564762272833993L;
 
             @Override
             public PropertyList<PlainSchemaTO> getObject() {
-                return new PropertyList<PlainSchemaTO>() {
+                return new PropertyList<>() {
 
                     @Override
                     public String getValues() {
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/PrivilegeDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/PrivilegeDirectoryPanel.java
index b44e8f0..9cdaa59 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/PrivilegeDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/PrivilegeDirectoryPanel.java
@@ -95,7 +95,7 @@
     protected ActionsPanel<PrivilegeTO> getActions(final IModel<PrivilegeTO> model) {
         ActionsPanel<PrivilegeTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<PrivilegeTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -103,11 +103,11 @@
             public void onClick(final AjaxRequestTarget target, final PrivilegeTO ignore) {
                 PrivilegeDirectoryPanel.this.getTogglePanel().close(target);
                 send(PrivilegeDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(model.getObject(), target));
+                    new AjaxWizard.EditItemActionEvent<>(model.getObject(), target));
             }
         }, ActionLink.ActionType.EDIT, IdRepoEntitlement.APPLICATION_UPDATE);
 
-        panel.add(new ActionLink<PrivilegeTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java
index 7bc9c58..625d2bc 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java
@@ -109,7 +109,7 @@
                 final ActionsPanel<RealmTO> actionPanel = new ActionsPanel<>("actions", null);
 
                 if (StringUtils.startsWith(realmTO.getFullPath(), SyncopeConstants.ROOT_REALM)) {
-                    actionPanel.add(new ActionLink<RealmTO>(realmTO) {
+                    actionPanel.add(new ActionLink<>(realmTO) {
 
                         private static final long serialVersionUID = 2802988981431379827L;
 
@@ -119,7 +119,7 @@
                         }
                     }, ActionLink.ActionType.CREATE, IdRepoEntitlement.REALM_CREATE).hideLabel();
 
-                    actionPanel.add(new ActionLink<RealmTO>(realmTO) {
+                    actionPanel.add(new ActionLink<>(realmTO) {
 
                         private static final long serialVersionUID = 2802988981431379828L;
 
@@ -129,7 +129,7 @@
                         }
                     }, ActionLink.ActionType.EDIT, IdRepoEntitlement.REALM_UPDATE).hideLabel();
 
-                    actionPanel.add(new ActionLink<RealmTO>(realmTO) {
+                    actionPanel.add(new ActionLink<>(realmTO) {
 
                         private static final long serialVersionUID = 2802988981431379827L;
 
@@ -139,7 +139,7 @@
                         }
                     }, ActionLink.ActionType.TEMPLATE, IdRepoEntitlement.REALM_UPDATE).hideLabel();
 
-                    actionPanel.add(new ActionLink<RealmTO>(realmTO) {
+                    actionPanel.add(new ActionLink<>(realmTO) {
 
                         private static final long serialVersionUID = 2802988981431379829L;
 
@@ -205,8 +205,8 @@
         propagations.add(syncope);
         propagations.addAll(((ProvisioningResult) result).getPropagationStatuses());
 
-        ListViewPanel.Builder<PropagationStatus> builder = new ListViewPanel.Builder<PropagationStatus>(
-                PropagationStatus.class, pageRef) {
+        ListViewPanel.Builder<PropagationStatus> builder = new ListViewPanel.Builder<>(
+            PropagationStatus.class, pageRef) {
 
             private static final long serialVersionUID = -6809736686861678498L;
 
@@ -215,12 +215,12 @@
                 if ("afterObj".equalsIgnoreCase(key)) {
                     ConnObjectTO afterObj = bean.getAfterObj();
                     String remoteId = afterObj == null
-                            || afterObj.getAttrs().isEmpty()
-                            || afterObj.getAttr(ConnIdSpecialName.NAME).isEmpty()
-                            || afterObj.getAttr(ConnIdSpecialName.NAME).get().getValues() == null
-                            || afterObj.getAttr(ConnIdSpecialName.NAME).get().getValues().isEmpty()
-                            ? StringUtils.EMPTY
-                            : afterObj.getAttr(ConnIdSpecialName.NAME).get().getValues().get(0);
+                        || afterObj.getAttrs().isEmpty()
+                        || afterObj.getAttr(ConnIdSpecialName.NAME).isEmpty()
+                        || afterObj.getAttr(ConnIdSpecialName.NAME).get().getValues() == null
+                        || afterObj.getAttr(ConnIdSpecialName.NAME).get().getValues().isEmpty()
+                        ? StringUtils.EMPTY
+                        : afterObj.getAttr(ConnIdSpecialName.NAME).get().getValues().get(0);
 
                     return new Label("field", remoteId);
                 } else if ("status".equalsIgnoreCase(key)) {
@@ -237,15 +237,15 @@
         builder.withChecks(ListViewPanel.CheckAvailability.NONE);
         builder.setReuseItem(false);
 
-        ActionLink<PropagationStatus> connObjectLink = new ActionLink<PropagationStatus>() {
+        ActionLink<PropagationStatus> connObjectLink = new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             protected boolean statusCondition(final PropagationStatus bean) {
                 return !Constants.SYNCOPE.equals(bean.getResource())
-                        && (ExecStatus.CREATED == bean.getStatus()
-                        || ExecStatus.SUCCESS == bean.getStatus());
+                    && (ExecStatus.CREATED == bean.getStatus()
+                    || ExecStatus.SUCCESS == bean.getStatus());
             }
 
             @Override
@@ -255,7 +255,7 @@
         };
         SyncopeWebApplication.get().getStatusProvider().addConnObjectLink(builder, connObjectLink);
 
-        builder.addAction(new ActionLink<PropagationStatus>() {
+        builder.addAction(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/RealmChoicePanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/RealmChoicePanel.java
index 51e7a4f..d4c149d 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/RealmChoicePanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/RealmChoicePanel.java
@@ -99,7 +99,7 @@
         tree = new HashMap<>();
         isSearchEnabled = RealmsUtils.isSearchEnabled(SyncopeConsoleSession.get().getSearchableRealms());
 
-        realmTree = new LoadableDetachableModel<List<Pair<String, RealmTO>>>() {
+        realmTree = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = -7688359318035249200L;
 
@@ -109,24 +109,24 @@
                 List<Pair<String, RealmTO>> full;
                 if (isSearchEnabled) {
                     full = map.entrySet().stream().map(el -> Pair.of(
-                            el.getKey(),
-                            el.getValue().getLeft())).
-                            collect(Collectors.toList());
+                        el.getKey(),
+                        el.getValue().getLeft())).
+                        collect(Collectors.toList());
                 } else {
                     full = map.entrySet().stream().
-                            map(el -> Pair.of(
+                        map(el -> Pair.of(
                             el.getValue().getLeft().getFullPath(),
                             el.getValue().getKey())).
-                            sorted(Comparator.comparing(Pair::getLeft)).
-                            collect(Collectors.toList());
+                        sorted(Comparator.comparing(Pair::getLeft)).
+                        collect(Collectors.toList());
                 }
                 return full.stream().filter(realm -> availableRealms.stream().anyMatch(
-                        availableRealm -> realm.getValue().getFullPath().startsWith(availableRealm))).
-                        collect(Collectors.toList());
+                    availableRealm -> realm.getValue().getFullPath().startsWith(availableRealm))).
+                    collect(Collectors.toList());
             }
         };
 
-        dynRealmTree = new LoadableDetachableModel<List<DynRealmTO>>() {
+        dynRealmTree = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
@@ -143,7 +143,7 @@
                     }
                 });
                 return dynRealms.stream().filter(dynRealm -> availableRealms.stream().
-                        anyMatch(availableRealm -> SyncopeConstants.ROOT_REALM.equals(availableRealm)
+                    anyMatch(availableRealm -> SyncopeConstants.ROOT_REALM.equals(availableRealm)
                         || dynRealm.getKey().equals(availableRealm))).collect(Collectors.toList());
             }
         };
@@ -162,7 +162,7 @@
                         placeholder.setFullPath(rootRealm);
                         return placeholder;
                     });
-        }).orElseGet(() -> new RealmTO());
+        }).orElseGet(RealmTO::new);
 
         model = Model.of(realmTO);
         searchQuery = realmTO.getName();
@@ -195,43 +195,43 @@
             settings.setShowListOnEmptyInput(false);
 
             final AutoCompleteTextField<String> searchRealms =
-                    new AutoCompleteTextField<String>(SEARCH_REALMS, new Model<String>(), settings) {
+                new AutoCompleteTextField<>(SEARCH_REALMS, new Model<>(), settings) {
 
-                private static final long serialVersionUID = -6635259975264955783L;
+                    private static final long serialVersionUID = -6635259975264955783L;
 
-                @Override
-                protected Iterator<String> getChoices(final String input) {
-                    searchQuery = input;
-                    realmsChoices = RealmsUtils.checkInput(input)
+                    @Override
+                    protected Iterator<String> getChoices(final String input) {
+                        searchQuery = input;
+                        realmsChoices = RealmsUtils.checkInput(input)
                             ? buildRealmChoices()
                             : List.of();
-                    return realmsChoices.stream().
-                            map(item -> item.getFullPath()).sorted().collect(Collectors.toList()).iterator();
-                }
+                        return realmsChoices.stream().
+                            map(RealmTO::getFullPath).sorted().collect(Collectors.toList()).iterator();
+                    }
 
-                @Override
-                protected AutoCompleteBehavior<String> newAutoCompleteBehavior(
+                    @Override
+                    protected AutoCompleteBehavior<String> newAutoCompleteBehavior(
                         final IAutoCompleteRenderer<String> renderer,
                         final AutoCompleteSettings settings) {
-                    return super.newAutoCompleteBehavior(new AbstractAutoCompleteRenderer<String>() {
+                        return super.newAutoCompleteBehavior(new AbstractAutoCompleteRenderer<>() {
 
-                        private static final long serialVersionUID = -4789925973199139157L;
+                            private static final long serialVersionUID = -4789925973199139157L;
 
-                        @Override
-                        protected void renderChoice(
+                            @Override
+                            protected void renderChoice(
                                 final String object,
                                 final Response response,
                                 final String criteria) {
-                            response.write(object);
-                        }
+                                response.write(object);
+                            }
 
-                        @Override
-                        protected String getTextValue(final String object) {
-                            return object;
-                        }
-                    }, settings);
-                }
-            };
+                            @Override
+                            protected String getTextValue(final String object) {
+                                return object;
+                            }
+                        }, settings);
+                    }
+                };
 
             searchRealms.add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
 
@@ -279,11 +279,11 @@
 
     private void buildRealmLinks(final Label label, final Label realmLabel) {
         RealmChoicePanel.this.links.clear();
-        RealmChoicePanel.this.links.add(new BootstrapAjaxLink<RealmTO>(
-                ButtonList.getButtonMarkupId(),
-                new Model<RealmTO>(),
-                Buttons.Type.Link,
-                new ResourceModel("realms", "Realms")) {
+        RealmChoicePanel.this.links.add(new BootstrapAjaxLink<>(
+            ButtonList.getButtonMarkupId(),
+            new Model<>(),
+            Buttons.Type.Link,
+            new ResourceModel("realms", "Realms")) {
 
             private static final long serialVersionUID = -7978723352517770744L;
 
@@ -303,11 +303,11 @@
         });
 
         realmTree.getObject().forEach(link -> {
-            RealmChoicePanel.this.links.add(new BootstrapAjaxLink<RealmTO>(
-                    ButtonList.getButtonMarkupId(),
-                    Model.of(link.getRight()),
-                    Buttons.Type.Link,
-                    new Model<>(link.getLeft())) {
+            RealmChoicePanel.this.links.add(new BootstrapAjaxLink<>(
+                ButtonList.getButtonMarkupId(),
+                Model.of(link.getRight()),
+                Buttons.Type.Link,
+                new Model<>(link.getLeft())) {
 
                 private static final long serialVersionUID = -7978723352517770644L;
 
@@ -323,11 +323,11 @@
         });
 
         if (!dynRealmTree.getObject().isEmpty()) {
-            RealmChoicePanel.this.links.add(new BootstrapAjaxLink<RealmTO>(
-                    ButtonList.getButtonMarkupId(),
-                    new Model<RealmTO>(),
-                    Buttons.Type.Link,
-                    new ResourceModel("dynrealms", "Dynamic Realms")) {
+            RealmChoicePanel.this.links.add(new BootstrapAjaxLink<>(
+                ButtonList.getButtonMarkupId(),
+                new Model<>(),
+                Buttons.Type.Link,
+                new ResourceModel("dynrealms", "Dynamic Realms")) {
 
                 private static final long serialVersionUID = -7978723352517770744L;
 
@@ -353,11 +353,11 @@
                 realmTO.setName(dynRealmTO.getKey());
                 realmTO.setFullPath(dynRealmTO.getKey());
 
-                RealmChoicePanel.this.links.add(new BootstrapAjaxLink<RealmTO>(
-                        ButtonList.getButtonMarkupId(),
-                        new Model<RealmTO>(),
-                        Buttons.Type.Link,
-                        new Model<>(realmTO.getKey())) {
+                RealmChoicePanel.this.links.add(new BootstrapAjaxLink<>(
+                    ButtonList.getButtonMarkupId(),
+                    new Model<>(),
+                    Buttons.Type.Link,
+                    new Model<>(realmTO.getKey())) {
 
                     private static final long serialVersionUID = -7978723352517770644L;
 
@@ -423,7 +423,7 @@
 
     private List<RealmTO> buildRealmChoices() {
         return Stream.of(
-                realmTree.getObject().stream().map(item -> item.getValue()).collect(Collectors.toList()),
+                realmTree.getObject().stream().map(Pair::getValue).collect(Collectors.toList()),
                 dynRealmTree.getObject().stream().map(
                         item -> {
                             final RealmTO realmTO = new RealmTO();
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/RealmDetails.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/RealmDetails.java
index bda68fa..9c689f4 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/RealmDetails.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/RealmDetails.java
@@ -50,18 +50,18 @@
 
     protected static final Logger LOG = LoggerFactory.getLogger(RealmDetails.class);
 
-    private final IModel<List<String>> logicActions = new LoadableDetachableModel<List<String>>() {
+    private final IModel<List<String>> logicActions = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = 5275935387613157437L;
 
         @Override
         protected List<String> load() {
             return ImplementationRestClient.list(IdRepoImplementationType.LOGIC_ACTIONS).stream().
-                    map(EntityTO::getKey).sorted().collect(Collectors.toList());
+                map(EntityTO::getKey).sorted().collect(Collectors.toList());
         }
     };
 
-    private final LoadableDetachableModel<List<String>> resources = new LoadableDetachableModel<List<String>>() {
+    private final LoadableDetachableModel<List<String>> resources = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = 5275935387613157437L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypesPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypesPanel.java
index 3cfd99f..23c86dc 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypesPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/RelationshipTypesPanel.java
@@ -134,8 +134,8 @@
                     columns.add(new BooleanPropertyColumn<>(
                             new ResourceModel(field.getName()), field.getName(), field.getName()));
                 } else {
-                    columns.add(new PropertyColumn<RelationshipTypeTO, String>(
-                            new ResourceModel(field.getName()), field.getName(), field.getName()) {
+                    columns.add(new PropertyColumn<>(
+                        new ResourceModel(field.getName()), field.getName(), field.getName()) {
 
                         private static final long serialVersionUID = -6902459669035442212L;
 
@@ -144,8 +144,8 @@
                             String css = super.getCssClass();
                             if (Constants.KEY_FIELD_NAME.equals(fieldName)) {
                                 css = StringUtils.isBlank(css)
-                                        ? "col-xs-1"
-                                        : css + " col-xs-1";
+                                    ? "col-xs-1"
+                                    : css + " col-xs-1";
                             }
                             return css;
                         }
@@ -161,17 +161,17 @@
     public ActionsPanel<RelationshipTypeTO> getActions(final IModel<RelationshipTypeTO> model) {
         final ActionsPanel<RelationshipTypeTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<RelationshipTypeTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final RelationshipTypeTO ignore) {
                 send(RelationshipTypesPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(model.getObject(), target));
+                    new AjaxWizard.EditItemActionEvent<>(model.getObject(), target));
             }
         }, ActionLink.ActionType.EDIT, IdRepoEntitlement.RELATIONSHIPTYPE_UPDATE);
-        panel.add(new ActionLink<RelationshipTypeTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java
index c2df030..cacdc8f 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/RoleDirectoryPanel.java
@@ -128,20 +128,20 @@
     public ActionsPanel<RoleTO> getActions(final IModel<RoleTO> model) {
         final ActionsPanel<RoleTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<RoleTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final RoleTO ignore) {
                 send(RoleDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(
-                                new RoleWrapper(RoleRestClient.read(model.getObject().getKey())),
-                                target));
+                    new AjaxWizard.EditItemActionEvent<>(
+                        new RoleWrapper(RoleRestClient.read(model.getObject().getKey())),
+                        target));
             }
         }, ActionLink.ActionType.EDIT, IdRepoEntitlement.ROLE_READ);
 
-        panel.add(new ActionLink<RoleTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
@@ -150,11 +150,11 @@
                 RoleTO clone = SerializationUtils.clone(model.getObject());
                 clone.setKey(null);
                 send(RoleDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.NewItemActionEvent<>(new RoleWrapper(clone), target));
+                    new AjaxWizard.NewItemActionEvent<>(new RoleWrapper(clone), target));
             }
         }, ActionLink.ActionType.CLONE, IdRepoEntitlement.ROLE_CREATE);
 
-        panel.add(new ActionLink<RoleTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
@@ -164,36 +164,36 @@
 
                 AnyLayout layout = AnyLayoutUtils.fetch(AnyTypeRestClient.list());
                 ModalPanel anyPanel = AnyLayoutUtils.newAnyPanel(
-                        layout.getAnyPanelClass(),
-                        BaseModal.CONTENT_ID, userType, null, layout, false,
-                        (id, anyTypeTO, realmTO, anyLayout, pageRef) -> {
-                            String query = SyncopeClient.getUserSearchConditionBuilder().and(
-                                    SyncopeClient.getUserSearchConditionBuilder().inRoles(model.getObject().getKey()),
-                                    SyncopeClient.getUserSearchConditionBuilder().
-                                            is(Constants.KEY_FIELD_NAME).notNullValue()).
-                                    query();
+                    layout.getAnyPanelClass(),
+                    BaseModal.CONTENT_ID, userType, null, layout, false,
+                    (id, anyTypeTO, realmTO, anyLayout, pageRef) -> {
+                        String query = SyncopeClient.getUserSearchConditionBuilder().and(
+                            SyncopeClient.getUserSearchConditionBuilder().inRoles(model.getObject().getKey()),
+                            SyncopeClient.getUserSearchConditionBuilder().
+                                is(Constants.KEY_FIELD_NAME).notNullValue()).
+                            query();
 
-                            Panel panel = new UserDirectoryPanel.Builder(
-                                    AnyTypeClassRestClient.list(anyTypeTO.getClasses()), anyTypeTO.getKey(), pageRef).
-                                    setRealm(SyncopeConstants.ROOT_REALM).
-                                    setFiltered(true).
-                                    setFiql(query).
-                                    disableCheckBoxes().
-                                    addNewItemPanelBuilder(AnyLayoutUtils.newLayoutInfo(
-                                            new UserTO(),
-                                            anyTypeTO.getClasses(),
-                                            anyLayout.getUser(),
-                                            pageRef), false).
-                                    setWizardInModal(false).build(id);
+                        Panel panel = new UserDirectoryPanel.Builder(
+                            AnyTypeClassRestClient.list(anyTypeTO.getClasses()), anyTypeTO.getKey(), pageRef).
+                            setRealm(SyncopeConstants.ROOT_REALM).
+                            setFiltered(true).
+                            setFiql(query).
+                            disableCheckBoxes().
+                            addNewItemPanelBuilder(AnyLayoutUtils.newLayoutInfo(
+                                new UserTO(),
+                                anyTypeTO.getClasses(),
+                                anyLayout.getUser(),
+                                pageRef), false).
+                            setWizardInModal(false).build(id);
 
-                            MetaDataRoleAuthorizationStrategy.authorize(
-                                    panel,
-                                    WebPage.RENDER,
-                                    IdRepoEntitlement.USER_SEARCH);
+                        MetaDataRoleAuthorizationStrategy.authorize(
+                            panel,
+                            WebPage.RENDER,
+                            IdRepoEntitlement.USER_SEARCH);
 
-                            return panel;
-                        },
-                        pageRef);
+                        return panel;
+                    },
+                    pageRef);
 
                 membersModal.header(new StringResourceModel("role.members", RoleDirectoryPanel.this, model));
                 membersModal.setContent(anyPanel);
@@ -202,20 +202,20 @@
             }
         }, ActionLink.ActionType.MEMBERS, IdRepoEntitlement.USER_SEARCH);
 
-        panel.add(new ActionLink<RoleTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final RoleTO ignore) {
                 AnyLayoutWrapper wrapper = new AnyLayoutWrapper(
-                        model.getObject().getKey(),
-                        AnyLayoutUtils.defaultIfEmpty(
-                                RoleRestClient.readAnyLayout(model.getObject().getKey()), AnyTypeRestClient.list()));
+                    model.getObject().getKey(),
+                    AnyLayoutUtils.defaultIfEmpty(
+                        RoleRestClient.readAnyLayout(model.getObject().getKey()), AnyTypeRestClient.list()));
 
                 utilityModal.header(new ResourceModel("console.layout.info", "JSON Content"));
                 utilityModal.setContent(new JsonEditorPanel(
-                        utilityModal, new PropertyModel<String>(wrapper, "content"), false, pageRef) {
+                    utilityModal, new PropertyModel<>(wrapper, "content"), false, pageRef) {
 
                     private static final long serialVersionUID = -8927036362466990179L;
 
@@ -237,7 +237,7 @@
                 target.add(utilityModal);
             }
         }, ActionLink.ActionType.LAYOUT_EDIT, IdRepoEntitlement.ROLE_UPDATE);
-        panel.add(new ActionLink<RoleTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/SchemaTypePanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/SchemaTypePanel.java
index 636013b..45aefb9 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/SchemaTypePanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/SchemaTypePanel.java
@@ -125,8 +125,8 @@
                 if (clazzField.getType().equals(Boolean.class) || clazzField.getType().equals(boolean.class)) {
                     columns.add(new BooleanPropertyColumn<>(new ResourceModel(field), field, field));
                 } else {
-                    IColumn<SchemaTO, String> column = new PropertyColumn<SchemaTO, String>(
-                            new ResourceModel(field), field, field) {
+                    IColumn<SchemaTO, String> column = new PropertyColumn<>(
+                        new ResourceModel(field), field, field) {
 
                         private static final long serialVersionUID = 3282547854226892169L;
 
@@ -135,8 +135,8 @@
                             String css = super.getCssClass();
                             if (Constants.KEY_FIELD_NAME.equals(field)) {
                                 css = StringUtils.isBlank(css)
-                                        ? "col-xs-1"
-                                        : css + " col-xs-1";
+                                    ? "col-xs-1"
+                                    : css + " col-xs-1";
                             }
                             return css;
                         }
@@ -152,17 +152,17 @@
     @Override
     public ActionsPanel<SchemaTO> getActions(final IModel<SchemaTO> model) {
         ActionsPanel<SchemaTO> panel = super.getActions(model);
-        panel.add(new ActionLink<SchemaTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final SchemaTO ignore) {
                 send(SchemaTypePanel.this, Broadcast.EXACT, new AjaxWizard.EditItemActionEvent<>(
-                        SchemaRestClient.read(schemaType, model.getObject().getKey()), target));
+                    SchemaRestClient.read(schemaType, model.getObject().getKey()), target));
             }
         }, ActionLink.ActionType.EDIT, IdRepoEntitlement.SCHEMA_UPDATE);
-        panel.add(new ActionLink<SchemaTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/SchemaTypeWizardBuilder.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/SchemaTypeWizardBuilder.java
index 77366e6..121ea04 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/SchemaTypeWizardBuilder.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/SchemaTypeWizardBuilder.java
@@ -140,79 +140,79 @@
                     (locale, display) -> translations.getObject().add(MutablePair.of(locale, display)));
 
             ListView<MutablePair<Locale, String>> labels =
-                    new ListView<MutablePair<Locale, String>>("labels", translations) {
+                new ListView<>("labels", translations) {
 
-                private static final long serialVersionUID = -8746795666847966508L;
+                    private static final long serialVersionUID = -8746795666847966508L;
 
-                @Override
-                protected void populateItem(final ListItem<MutablePair<Locale, String>> item) {
-                    MutablePair<Locale, String> entry = item.getModelObject();
+                    @Override
+                    protected void populateItem(final ListItem<MutablePair<Locale, String>> item) {
+                        MutablePair<Locale, String> entry = item.getModelObject();
 
-                    AjaxTextFieldPanel locale = new AjaxTextFieldPanel("locale", "locale", new Model<>(), true);
-                    locale.getField().setModel(new IModel<String>() {
+                        AjaxTextFieldPanel locale = new AjaxTextFieldPanel("locale", "locale", new Model<>(), true);
+                        locale.getField().setModel(new IModel<>() {
 
-                        private static final long serialVersionUID = 1500045101360533133L;
+                            private static final long serialVersionUID = 1500045101360533133L;
 
-                        @Override
-                        public String getObject() {
-                            return entry.getLeft() == null ? null : entry.getLeft().toString();
-                        }
+                            @Override
+                            public String getObject() {
+                                return entry.getLeft() == null ? null : entry.getLeft().toString();
+                            }
 
-                        @Override
-                        public void setObject(final String object) {
-                            entry.setLeft(LocaleUtils.toLocale(object));
-                        }
-                    });
-                    locale.setRequired(true).hideLabel();
-                    locale.setChoices(BaseLogin.SUPPORTED_LOCALES.stream().
+                            @Override
+                            public void setObject(final String object) {
+                                entry.setLeft(LocaleUtils.toLocale(object));
+                            }
+                        });
+                        locale.setRequired(true).hideLabel();
+                        locale.setChoices(BaseLogin.SUPPORTED_LOCALES.stream().
                             map(Objects::toString).collect(Collectors.toList()));
-                    locale.addValidator(validatable -> {
-                        try {
-                            LocaleUtils.toLocale(validatable.getValue());
-                        } catch (Exception e) {
-                            LOG.error("Invalid Locale: {}", validatable.getValue(), e);
-                            validatable.error(new ValidationError("Invalid Locale: " + validatable.getValue()));
+                        locale.addValidator(validatable -> {
+                            try {
+                                LocaleUtils.toLocale(validatable.getValue());
+                            } catch (Exception e) {
+                                LOG.error("Invalid Locale: {}", validatable.getValue(), e);
+                                validatable.error(new ValidationError("Invalid Locale: " + validatable.getValue()));
 
-                            RequestCycle.get().find(AjaxRequestTarget.class).
+                                RequestCycle.get().find(AjaxRequestTarget.class).
                                     ifPresent(target -> target.add(Labels.this));
-                        }
-                    });
-                    item.add(locale);
+                            }
+                        });
+                        item.add(locale);
 
-                    AjaxTextFieldPanel display = new AjaxTextFieldPanel("display", "display", new Model<>());
-                    display.getField().setModel(new IModel<String>() {
+                        AjaxTextFieldPanel display = new AjaxTextFieldPanel("display", "display", new Model<>());
+                        display.getField().setModel(new IModel<>() {
 
-                        private static final long serialVersionUID = 1500045101360533133L;
+                            private static final long serialVersionUID = 1500045101360533133L;
 
-                        @Override
-                        public String getObject() {
-                            return entry.getRight();
-                        }
+                            @Override
+                            public String getObject() {
+                                return entry.getRight();
+                            }
 
-                        @Override
-                        public void setObject(final String object) {
-                            entry.setRight(object);
-                        }
-                    });
-                    display.setRequired(true).hideLabel();
-                    item.add(display);
+                            @Override
+                            public void setObject(final String object) {
+                                entry.setRight(object);
+                            }
+                        });
+                        display.setRequired(true).hideLabel();
+                        item.add(display);
 
-                    ActionsPanel<Serializable> actions = new ActionsPanel<>("toRemove", null);
-                    actions.add(new ActionLink<Serializable>() {
+                        ActionsPanel<Serializable> actions = new ActionsPanel<>("toRemove", null);
+                        actions.add(new ActionLink<>() {
 
-                        private static final long serialVersionUID = -3722207913631435501L;
+                            private static final long serialVersionUID = -3722207913631435501L;
 
-                        @Override
-                        public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
-                            translations.getObject().remove(item.getIndex());
+                            @Override
+                            public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
+                                translations.getObject().remove(item.getIndex());
 
-                            item.getParent().removeAll();
-                            target.add(Labels.this);
-                        }
-                    }, ActionLink.ActionType.DELETE, IdRepoEntitlement.SCHEMA_UPDATE, true).hideLabel();
-                    item.add(actions);
-                }
-            };
+                                item.getParent().removeAll();
+                                target.add(Labels.this);
+                            }
+                        }, ActionLink.ActionType.DELETE, IdRepoEntitlement.SCHEMA_UPDATE, true).hideLabel();
+                        item.add(actions);
+                    }
+                };
             labels.setReuseItems(true);
             add(labels);
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.java
index a621bd3..024c9c2 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/SecurityQuestionsPanel.java
@@ -124,17 +124,17 @@
     public ActionsPanel<SecurityQuestionTO> getActions(final IModel<SecurityQuestionTO> model) {
         ActionsPanel<SecurityQuestionTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<SecurityQuestionTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final SecurityQuestionTO ignore) {
                 send(SecurityQuestionsPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(model.getObject(), target));
+                    new AjaxWizard.EditItemActionEvent<>(model.getObject(), target));
             }
         }, ActionLink.ActionType.EDIT, IdRepoEntitlement.SECURITY_QUESTION_UPDATE);
-        panel.add(new ActionLink<SecurityQuestionTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel.java
index fdf5b9b..51d8e2c 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel.java
@@ -137,17 +137,17 @@
         final ActionsPanel<TypeExtensionTO> panel = super.getActions(model);
         final TypeExtensionTO typeExtension = model.getObject();
 
-        panel.add(new ActionLink<TypeExtensionTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final TypeExtensionTO ignore) {
                 send(TypeExtensionDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(typeExtension, target));
+                    new AjaxWizard.EditItemActionEvent<>(typeExtension, target));
             }
         }, ActionLink.ActionType.EDIT, StringUtils.EMPTY);
-        panel.add(new ActionLink<TypeExtensionTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/UserDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/UserDirectoryPanel.java
index 1da79f4..2a6dc1d 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/UserDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/UserDirectoryPanel.java
@@ -101,14 +101,14 @@
     public ActionsPanel<Serializable> getHeader(final String componentId) {
         final ActionsPanel<Serializable> panel = super.getHeader(componentId);
 
-        panel.add(new ActionLink<Serializable>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final Serializable ignore) {
                 target.add(displayAttributeModal.setContent(new UserDisplayAttributesModalPanel<>(
-                        displayAttributeModal, page.getPageReference(), pSchemaNames, dSchemaNames)));
+                    displayAttributeModal, page.getPageReference(), pSchemaNames, dSchemaNames)));
 
                 displayAttributeModal.header(new ResourceModel("any.attr.display"));
                 displayAttributeModal.addSubmitButton();
@@ -127,22 +127,22 @@
     public ActionsPanel<UserTO> getActions(final IModel<UserTO> model) {
         final ActionsPanel<UserTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<UserTO>() {
+        panel.add(new ActionLink<>() {
 
-            private static final long serialVersionUID = -7978723352517770644L;
+                      private static final long serialVersionUID = -7978723352517770644L;
 
-            @Override
-            public void onClick(final AjaxRequestTarget target, final UserTO ignore) {
-                send(UserDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(
-                                new UserWrapper(new UserRestClient().read(model.getObject().getKey())),
-                                target));
-            }
-        }, ActionType.EDIT,
+                      @Override
+                      public void onClick(final AjaxRequestTarget target, final UserTO ignore) {
+                          send(UserDirectoryPanel.this, Broadcast.EXACT,
+                              new AjaxWizard.EditItemActionEvent<>(
+                                  new UserWrapper(new UserRestClient().read(model.getObject().getKey())),
+                                  target));
+                      }
+                  }, ActionType.EDIT,
                 String.format("%s,%s", IdRepoEntitlement.USER_READ, IdRepoEntitlement.USER_UPDATE)).
                 setRealms(realm, model.getObject().getDynRealms());
 
-        panel.add(new ActionLink<UserTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
@@ -151,9 +151,9 @@
                 try {
                     model.setObject(restClient.read(model.getObject().getKey()));
                     restClient.mustChangePassword(
-                            model.getObject().getETagValue(),
-                            !model.getObject().isMustChangePassword(),
-                            model.getObject().getKey());
+                        model.getObject().getETagValue(),
+                        !model.getObject().isMustChangePassword(),
+                        model.getObject().getKey());
 
                     SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
                     target.add(container);
@@ -167,7 +167,7 @@
                 setRealms(realm, model.getObject().getDynRealms());
 
         if (wizardInModal) {
-            panel.add(new ActionLink<UserTO>() {
+            panel.add(new ActionLink<>() {
 
                 private static final long serialVersionUID = -4875218360625971340L;
 
@@ -175,16 +175,16 @@
                 public void onClick(final AjaxRequestTarget target, final UserTO ignore) {
                     model.setObject(restClient.read(model.getObject().getKey()));
                     IModel<AnyWrapper<UserTO>> formModel = new CompoundPropertyModel<>(
-                            new AnyWrapper<>(model.getObject()));
+                        new AnyWrapper<>(model.getObject()));
                     displayAttributeModal.setFormModel(formModel);
 
                     target.add(displayAttributeModal.setContent(new ChangePasswordModal(
-                            displayAttributeModal,
-                            pageRef,
-                            new UserWrapper(model.getObject()))));
+                        displayAttributeModal,
+                        pageRef,
+                        new UserWrapper(model.getObject()))));
 
                     displayAttributeModal.header(new Model<>(
-                            getString("any.edit", new Model<>(new AnyWrapper<>(model.getObject())))));
+                        getString("any.edit", new Model<>(new AnyWrapper<>(model.getObject())))));
 
                     displayAttributeModal.show(true);
                 }
@@ -193,7 +193,7 @@
 
             PlatformInfo platformInfo = SyncopeConsoleSession.get().getAnonymousClient().platform();
             if (platformInfo.isPwdResetAllowed() && !platformInfo.isPwdResetRequiringSecurityQuestions()) {
-                panel.add(new ActionLink<UserTO>() {
+                panel.add(new ActionLink<>() {
 
                     private static final long serialVersionUID = -7978723352517770644L;
 
@@ -201,7 +201,7 @@
                     public void onClick(final AjaxRequestTarget target, final UserTO ignore) {
                         try {
                             SyncopeConsoleSession.get().getAnonymousClient().getService(UserSelfService.class).
-                                    requestPasswordReset(model.getObject().getUsername(), null);
+                                requestPasswordReset(model.getObject().getUsername(), null);
 
                             SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
                             target.add(container);
@@ -223,28 +223,28 @@
                     this,
                     pageRef).forEach(panel::add);
 
-            panel.add(new ActionLink<UserTO>() {
+            panel.add(new ActionLink<>() {
 
                 private static final long serialVersionUID = -7978723352517770644L;
 
                 @Override
                 public void onClick(final AjaxRequestTarget target, final UserTO ignore) {
                     target.add(utilityModal.setContent(new AnyPropagationTasks(
-                            utilityModal, AnyTypeKind.USER, model.getObject().getKey(), pageRef)));
+                        utilityModal, AnyTypeKind.USER, model.getObject().getKey(), pageRef)));
 
                     utilityModal.header(new StringResourceModel("any.propagation.tasks", model));
                     utilityModal.show(true);
                 }
             }, ActionType.PROPAGATION_TASKS, IdRepoEntitlement.TASK_LIST);
 
-            panel.add(new ActionLink<UserTO>() {
+            panel.add(new ActionLink<>() {
 
                 private static final long serialVersionUID = -7978723352517770644L;
 
                 @Override
                 public void onClick(final AjaxRequestTarget target, final UserTO ignore) {
                     target.add(utilityModal.setContent(
-                            new NotificationTasks(AnyTypeKind.USER, model.getObject().getKey(), pageRef)));
+                        new NotificationTasks(AnyTypeKind.USER, model.getObject().getKey(), pageRef)));
                     utilityModal.header(new StringResourceModel("any.notification.tasks", model));
                     utilityModal.show(true);
                     target.add(utilityModal);
@@ -253,64 +253,64 @@
         }
 
         if (wizardInModal) {
-            panel.add(new ActionLink<UserTO>() {
+            panel.add(new ActionLink<>() {
 
-                private static final long serialVersionUID = -1978723352517770644L;
+                          private static final long serialVersionUID = -1978723352517770644L;
 
-                @Override
-                public void onClick(final AjaxRequestTarget target, final UserTO ignore) {
-                    model.setObject(restClient.read(model.getObject().getKey()));
-                    target.add(altDefaultModal.setContent(new AuditHistoryModal<UserTO>(
-                            altDefaultModal,
-                            AuditElements.EventCategoryType.LOGIC,
-                            "UserLogic",
-                            model.getObject(),
-                            IdRepoEntitlement.USER_UPDATE,
-                            pageRef) {
+                          @Override
+                          public void onClick(final AjaxRequestTarget target, final UserTO ignore) {
+                              model.setObject(restClient.read(model.getObject().getKey()));
+                              target.add(altDefaultModal.setContent(new AuditHistoryModal<>(
+                                  altDefaultModal,
+                                  AuditElements.EventCategoryType.LOGIC,
+                                  "UserLogic",
+                                  model.getObject(),
+                                  IdRepoEntitlement.USER_UPDATE,
+                                  pageRef) {
 
-                        private static final long serialVersionUID = 959378158400669867L;
+                                  private static final long serialVersionUID = 959378158400669867L;
 
-                        @Override
-                        protected void restore(final String json, final AjaxRequestTarget target) {
-                            // The original audit record masks the password and the security
-                            // answer; so we cannot use the audit record to resurrect the entry
-                            // based on mask data.
-                            //
-                            // The method behavior below will reset the audit record such
-                            // that the current security answer and the password for the object
-                            // are always maintained, and such properties for the
-                            // user cannot be restored using audit records.
-                            UserTO original = model.getObject();
-                            try {
-                                UserTO updated = MAPPER.readValue(json, UserTO.class);
-                                UserUR updateReq = AnyOperations.diff(updated, original, false);
-                                updateReq.setPassword(null);
-                                updateReq.setSecurityAnswer(null);
-                                ProvisioningResult<UserTO> result =
-                                        restClient.update(original.getETagValue(), updateReq);
-                                model.getObject().setLastChangeDate(result.getEntity().getLastChangeDate());
+                                  @Override
+                                  protected void restore(final String json, final AjaxRequestTarget target) {
+                                      // The original audit record masks the password and the security
+                                      // answer; so we cannot use the audit record to resurrect the entry
+                                      // based on mask data.
+                                      //
+                                      // The method behavior below will reset the audit record such
+                                      // that the current security answer and the password for the object
+                                      // are always maintained, and such properties for the
+                                      // user cannot be restored using audit records.
+                                      UserTO original = model.getObject();
+                                      try {
+                                          UserTO updated = MAPPER.readValue(json, UserTO.class);
+                                          UserUR updateReq = AnyOperations.diff(updated, original, false);
+                                          updateReq.setPassword(null);
+                                          updateReq.setSecurityAnswer(null);
+                                          ProvisioningResult<UserTO> result =
+                                              restClient.update(original.getETagValue(), updateReq);
+                                          model.getObject().setLastChangeDate(result.getEntity().getLastChangeDate());
 
-                                SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
-                                target.add(container);
-                            } catch (Exception e) {
-                                LOG.error("While restoring user {}", model.getObject().getKey(), e);
-                                SyncopeConsoleSession.get().onException(e);
-                            }
-                            ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
-                        }
-                    }));
+                                          SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
+                                          target.add(container);
+                                      } catch (Exception e) {
+                                          LOG.error("While restoring user {}", model.getObject().getKey(), e);
+                                          SyncopeConsoleSession.get().onException(e);
+                                      }
+                                      ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
+                                  }
+                              }));
 
-                    altDefaultModal.header(new Model<>(
-                            getString("auditHistory.title", new Model<>(new AnyWrapper<>(model.getObject())))));
+                              altDefaultModal.header(new Model<>(
+                                  getString("auditHistory.title", new Model<>(new AnyWrapper<>(model.getObject())))));
 
-                    altDefaultModal.show(true);
-                }
-            }, ActionType.VIEW_AUDIT_HISTORY,
+                              altDefaultModal.show(true);
+                          }
+                      }, ActionType.VIEW_AUDIT_HISTORY,
                     String.format("%s,%s", IdRepoEntitlement.USER_READ, IdRepoEntitlement.AUDIT_LIST)).
                     setRealms(realm, model.getObject().getDynRealms());
         }
 
-        panel.add(new ActionLink<UserTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
@@ -320,7 +320,7 @@
                 clone.setKey(null);
                 clone.setUsername(model.getObject().getUsername() + "_clone");
                 send(UserDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.NewItemActionEvent<>(new UserWrapper(clone), target));
+                    new AjaxWizard.NewItemActionEvent<>(new UserWrapper(clone), target));
             }
 
             @Override
@@ -329,7 +329,7 @@
             }
         }, ActionType.CLONE, IdRepoEntitlement.USER_CREATE).setRealm(realm);
 
-        panel.add(new ActionLink<UserTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java
index 5dff765..5cf2392 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java
@@ -144,7 +144,7 @@
 
         Pair<IModel<List<String>>, IModel<Integer>> groupInfo =
                 typeKind != AnyTypeKind.GROUP && SyncopeConsoleSession.get().owns(IdRepoEntitlement.GROUP_SEARCH)
-                ? Pair.of(groupNames, new LoadableDetachableModel<Integer>() {
+                ? Pair.of(groupNames, new LoadableDetachableModel<>() {
 
                     private static final long serialVersionUID = 7362833782319137329L;
 
@@ -165,7 +165,7 @@
             searchClausePanel.enableSearch(builder.resultContainer);
         }
 
-        MultiFieldPanel.Builder<SearchClause> searchView = new MultiFieldPanel.Builder<SearchClause>(model) {
+        MultiFieldPanel.Builder<SearchClause> searchView = new MultiFieldPanel.Builder<>(model) {
 
             private static final long serialVersionUID = 1343431509987473047L;
 
@@ -179,7 +179,7 @@
     }
 
     protected void populate() {
-        dnames = new LoadableDetachableModel<Map<String, PlainSchemaTO>>() {
+        dnames = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
@@ -187,15 +187,15 @@
             protected Map<String, PlainSchemaTO> load() {
                 Map<String, PlainSchemaTO> dSchemaNames = new HashMap<>();
                 SearchableFields.get(typeKind.getTOClass()).forEach((key, type) -> {
-                            PlainSchemaTO plain = new PlainSchemaTO();
-                            plain.setType(type);
-                            dSchemaNames.put(key, plain);
-                        });
+                    PlainSchemaTO plain = new PlainSchemaTO();
+                    plain.setType(type);
+                    dSchemaNames.put(key, plain);
+                });
                 return dSchemaNames;
             }
         };
 
-        resourceNames = new LoadableDetachableModel<List<String>>() {
+        resourceNames = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/AnyObjectSearchPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/AnyObjectSearchPanel.java
index 4d0ce81..d1c22c6 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/AnyObjectSearchPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/AnyObjectSearchPanel.java
@@ -29,6 +29,7 @@
 import org.apache.syncope.common.lib.SyncopeConstants;
 import org.apache.syncope.common.lib.to.GroupTO;
 import org.apache.syncope.common.lib.to.PlainSchemaTO;
+import org.apache.syncope.common.lib.to.SchemaTO;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.syncope.common.lib.types.SchemaType;
 import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
@@ -68,7 +69,7 @@
     protected void populate() {
         super.populate();
 
-        this.types = new LoadableDetachableModel<List<SearchClause.Type>>() {
+        this.types = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
@@ -78,31 +79,31 @@
             }
         };
 
-        this.groupNames = new LoadableDetachableModel<List<String>>() {
+        this.groupNames = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
             @Override
             protected List<String> load() {
                 return groupRestClient.search(
-                        SyncopeConstants.ROOT_REALM,
-                        null,
-                        1,
-                        Constants.MAX_GROUP_LIST_SIZE,
-                        new SortParam<>(Constants.NAME_FIELD_NAME, true),
-                        null).stream().map(GroupTO::getName).collect(Collectors.toList());
+                    SyncopeConstants.ROOT_REALM,
+                    null,
+                    1,
+                    Constants.MAX_GROUP_LIST_SIZE,
+                    new SortParam<>(Constants.NAME_FIELD_NAME, true),
+                    null).stream().map(GroupTO::getName).collect(Collectors.toList());
             }
         };
 
-        this.anames = new LoadableDetachableModel<Map<String, PlainSchemaTO>>() {
+        this.anames = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
             @Override
             protected Map<String, PlainSchemaTO> load() {
                 return SchemaRestClient.<PlainSchemaTO>getSchemas(
-                        SchemaType.PLAIN, null, AnyTypeRestClient.read(type).getClasses().toArray(new String[] {})).
-                        stream().collect(Collectors.toMap(schema -> schema.getKey(), Function.identity()));
+                    SchemaType.PLAIN, null, AnyTypeRestClient.read(type).getClasses().toArray(new String[]{})).
+                    stream().collect(Collectors.toMap(SchemaTO::getKey, Function.identity()));
             }
         };
     }
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/AnySelectionDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/AnySelectionDirectoryPanel.java
index 784032f..672287e 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/AnySelectionDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/AnySelectionDirectoryPanel.java
@@ -54,14 +54,14 @@
     public ActionsPanel<A> getActions(final IModel<A> model) {
         final ActionsPanel<A> panel = super.getActions(model);
 
-        panel.add(new ActionLink<A>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final A ignore) {
                 send(AnySelectionDirectoryPanel.this,
-                        Broadcast.BUBBLE, new ItemSelection<>(target, model.getObject()));
+                    Broadcast.BUBBLE, new ItemSelection<>(target, model.getObject()));
             }
         }, ActionType.SELECT, AnyEntitlement.READ.getFor(type));
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/GroupSearchPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/GroupSearchPanel.java
index 1dfeb5e..80ae8e4 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/GroupSearchPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/GroupSearchPanel.java
@@ -26,6 +26,7 @@
 import org.apache.syncope.client.console.rest.AnyTypeRestClient;
 import org.apache.syncope.client.console.rest.SchemaRestClient;
 import org.apache.syncope.common.lib.to.PlainSchemaTO;
+import org.apache.syncope.common.lib.to.SchemaTO;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.syncope.common.lib.types.SchemaType;
 import org.apache.wicket.model.IModel;
@@ -57,7 +58,7 @@
     protected void populate() {
         super.populate();
 
-        this.types = new LoadableDetachableModel<List<SearchClause.Type>>() {
+        this.types = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
@@ -71,7 +72,7 @@
             }
         };
 
-        this.groupNames = new LoadableDetachableModel<List<String>>() {
+        this.groupNames = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
@@ -81,15 +82,15 @@
             }
         };
 
-        this.anames = new LoadableDetachableModel<Map<String, PlainSchemaTO>>() {
+        this.anames = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
             @Override
             protected Map<String, PlainSchemaTO> load() {
                 return SchemaRestClient.<PlainSchemaTO>getSchemas(
-                        SchemaType.PLAIN, null, AnyTypeRestClient.read(type).getClasses().toArray(new String[] {})).
-                        stream().collect(Collectors.toMap(schema -> schema.getKey(), Function.identity()));
+                    SchemaType.PLAIN, null, AnyTypeRestClient.read(type).getClasses().toArray(new String[]{})).
+                    stream().collect(Collectors.toMap(SchemaTO::getKey, Function.identity()));
             }
         };
     }
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java
index d15188a..ad11b02 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java
@@ -198,7 +198,7 @@
         this.privilegeNames = privilegeNames;
         this.resourceNames = resourceNames;
 
-        searchButton = new AjaxLink<Void>("search") {
+        searchButton = new AjaxLink<>("search") {
 
             private static final long serialVersionUID = 5538299138211283825L;
 
@@ -217,14 +217,14 @@
 
         operatorFragment = new Fragment("operator", "operatorFragment", this);
 
-        field = new FormComponent<SearchClause>("container", this.clause) {
+        field = new FormComponent<>("container", this.clause) {
 
             private static final long serialVersionUID = -8204140666393922700L;
 
         };
         add(field);
 
-        comparators = new LoadableDetachableModel<List<Comparator>>() {
+        comparators = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
@@ -244,15 +244,15 @@
                     case GROUP_MEMBER:
                     case RESOURCE:
                         return List.of(
-                                SearchClause.Comparator.EQUALS,
-                                SearchClause.Comparator.NOT_EQUALS);
+                            SearchClause.Comparator.EQUALS,
+                            SearchClause.Comparator.NOT_EQUALS);
 
                     case RELATIONSHIP:
                         return List.of(
-                                SearchClause.Comparator.IS_NOT_NULL,
-                                SearchClause.Comparator.IS_NULL,
-                                SearchClause.Comparator.EQUALS,
-                                SearchClause.Comparator.NOT_EQUALS);
+                            SearchClause.Comparator.IS_NOT_NULL,
+                            SearchClause.Comparator.IS_NULL,
+                            SearchClause.Comparator.EQUALS,
+                            SearchClause.Comparator.NOT_EQUALS);
 
                     case CUSTOM:
                         return customizer.comparators();
@@ -263,7 +263,7 @@
             }
         };
 
-        properties = new LoadableDetachableModel<List<String>>() {
+        properties = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
@@ -286,19 +286,19 @@
 
                     case ROLE_MEMBERSHIP:
                         return roleNames.getObject().stream().
-                                sorted().collect(Collectors.toList());
+                            sorted().collect(Collectors.toList());
 
                     case PRIVILEGE:
                         return privilegeNames.getObject().stream().
-                                sorted().collect(Collectors.toList());
+                            sorted().collect(Collectors.toList());
 
                     case RESOURCE:
                         return resourceNames.getObject().stream().
-                                sorted().collect(Collectors.toList());
+                            sorted().collect(Collectors.toList());
 
                     case RELATIONSHIP:
                         return RelationshipTypeRestClient.list().stream().
-                                map(RelationshipTypeTO::getKey).collect(Collectors.toList());
+                            map(RelationshipTypeTO::getKey).collect(Collectors.toList());
 
                     case CUSTOM:
                         return customizer.properties();
@@ -380,7 +380,7 @@
                 withOffStyle(BootstrapToggleConfig.Style.warning).
                 withSize(BootstrapToggleConfig.Size.mini);
 
-        operatorFragment.add(new BootstrapToggle("operator", new Model<Boolean>() {
+        operatorFragment.add(new BootstrapToggle("operator", new Model<>() {
 
             private static final long serialVersionUID = -7157802546272668001L;
 
@@ -676,7 +676,7 @@
     }
 
     private IChoiceRenderer<SearchClause.Comparator> getComparatorRender(final IModel<SearchClause> clause) {
-        return new IChoiceRenderer<SearchClause.Comparator>() {
+        return new IChoiceRenderer<>() {
 
             private static final long serialVersionUID = -9086043750227867686L;
 
@@ -815,7 +815,7 @@
 
             @Override
             public SearchClause.Comparator getObject(
-                    final String id, final IModel<? extends List<? extends SearchClause.Comparator>> choices) {
+                final String id, final IModel<? extends List<? extends SearchClause.Comparator>> choices) {
 
                 if (id == null) {
                     return SearchClause.Comparator.EQUALS;
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchUtils.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchUtils.java
index 8baa82d..57e8a60 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchUtils.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchUtils.java
@@ -54,7 +54,7 @@
 
     private static final Logger LOG = LoggerFactory.getLogger(SearchUtils.class);
 
-    private static final BidiMap<String, String> ENCODINGS = new DualHashBidiMap<String, String>() {
+    private static final BidiMap<String, String> ENCODINGS = new DualHashBidiMap<>() {
 
         private static final long serialVersionUID = 5636572627689425575L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSearchPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSearchPanel.java
index 1f8f982..9b38f4d 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSearchPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSearchPanel.java
@@ -54,7 +54,7 @@
     protected void populate() {
         super.populate();
 
-        this.roleNames = new LoadableDetachableModel<List<String>>() {
+        this.roleNames = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
@@ -64,15 +64,15 @@
             }
         };
 
-        this.privilegeNames = new LoadableDetachableModel<List<String>>() {
+        this.privilegeNames = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
             @Override
             protected List<String> load() {
                 return ApplicationRestClient.list().stream().
-                        flatMap(application -> application.getPrivileges().stream()).
-                        map(EntityTO::getKey).collect(Collectors.toList());
+                    flatMap(application -> application.getPrivileges().stream()).
+                    map(EntityTO::getKey).collect(Collectors.toList());
             }
         };
     }
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/AccountPolicyDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/AccountPolicyDirectoryPanel.java
index c2f7536..dd5747c 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/AccountPolicyDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/AccountPolicyDirectoryPanel.java
@@ -65,20 +65,20 @@
 
     @Override
     protected void addCustomActions(final ActionsPanel<AccountPolicyTO> panel, final IModel<AccountPolicyTO> model) {
-        panel.add(new ActionLink<AccountPolicyTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final AccountPolicyTO ignore) {
                 target.add(ruleCompositionModal.setContent(new PolicyRuleDirectoryPanel<>(
-                        ruleCompositionModal, model.getObject().getKey(), PolicyType.ACCOUNT, pageRef)));
+                    ruleCompositionModal, model.getObject().getKey(), PolicyType.ACCOUNT, pageRef)));
 
                 ruleCompositionModal.header(new StringResourceModel(
-                        "policy.rules", AccountPolicyDirectoryPanel.this, model));
+                    "policy.rules", AccountPolicyDirectoryPanel.this, model));
 
                 MetaDataRoleAuthorizationStrategy.authorize(
-                        ruleCompositionModal.getForm(), ENABLE, IdRepoEntitlement.POLICY_UPDATE);
+                    ruleCompositionModal.getForm(), ENABLE, IdRepoEntitlement.POLICY_UPDATE);
 
                 ruleCompositionModal.show(true);
             }
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PasswordPolicyDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PasswordPolicyDirectoryPanel.java
index ecb7b80..409e0bc 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PasswordPolicyDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PasswordPolicyDirectoryPanel.java
@@ -62,20 +62,20 @@
 
     @Override
     protected void addCustomActions(final ActionsPanel<PasswordPolicyTO> panel, final IModel<PasswordPolicyTO> model) {
-        panel.add(new ActionLink<PasswordPolicyTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final PasswordPolicyTO ignore) {
                 target.add(ruleCompositionModal.setContent(new PolicyRuleDirectoryPanel<>(
-                        ruleCompositionModal, model.getObject().getKey(), PolicyType.PASSWORD, pageRef)));
+                    ruleCompositionModal, model.getObject().getKey(), PolicyType.PASSWORD, pageRef)));
 
                 ruleCompositionModal.header(new StringResourceModel(
-                        "policy.rules", PasswordPolicyDirectoryPanel.this, Model.of(model.getObject())));
+                    "policy.rules", PasswordPolicyDirectoryPanel.this, Model.of(model.getObject())));
 
                 MetaDataRoleAuthorizationStrategy.authorize(
-                        ruleCompositionModal.getForm(), ENABLE, IdRepoEntitlement.POLICY_UPDATE);
+                    ruleCompositionModal.getForm(), ENABLE, IdRepoEntitlement.POLICY_UPDATE);
 
                 ruleCompositionModal.show(true);
             }
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PolicyDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PolicyDirectoryPanel.java
index ea16fe5..db1a5f4 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PolicyDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PolicyDirectoryPanel.java
@@ -63,7 +63,7 @@
 
     private static final long serialVersionUID = 4984337552918213290L;
 
-    protected final BaseModal<T> ruleCompositionModal = new BaseModal<T>(Constants.OUTER) {
+    protected final BaseModal<T> ruleCompositionModal = new BaseModal<>(Constants.OUTER) {
 
         private static final long serialVersionUID = 389935548143327858L;
 
@@ -130,19 +130,19 @@
     public ActionsPanel<T> getActions(final IModel<T> model) {
         ActionsPanel<T> panel = super.getActions(model);
 
-        panel.add(new ActionLink<T>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final PolicyTO ignore) {
                 send(PolicyDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(
-                                PolicyRestClient.read(type, model.getObject().getKey()), target));
+                    new AjaxWizard.EditItemActionEvent<>(
+                        PolicyRestClient.read(type, model.getObject().getKey()), target));
             }
         }, ActionLink.ActionType.EDIT, IdRepoEntitlement.POLICY_UPDATE);
 
-        panel.add(new ActionLink<T>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -151,13 +151,13 @@
                 final PolicyTO clone = SerializationUtils.clone(model.getObject());
                 clone.setKey(null);
                 send(PolicyDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(clone, target));
+                    new AjaxWizard.EditItemActionEvent<>(clone, target));
             }
         }, ActionLink.ActionType.CLONE, IdRepoEntitlement.POLICY_CREATE);
 
         addCustomActions(panel, model);
 
-        panel.add(new ActionLink<T>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PolicyModalPanelBuilder.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PolicyModalPanelBuilder.java
index 671a2b3..812506c 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PolicyModalPanelBuilder.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PolicyModalPanelBuilder.java
@@ -75,7 +75,7 @@
 
         private final T policyTO;
 
-        private final LoadableDetachableModel<List<String>> resources = new LoadableDetachableModel<List<String>>() {
+        private final LoadableDetachableModel<List<String>> resources = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
@@ -157,7 +157,7 @@
                 default:
             }
 
-            add(new ListView<Component>("fields", fields) {
+            add(new ListView<>("fields", fields) {
 
                 private static final long serialVersionUID = -9180479401817023838L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleDirectoryPanel.java
index 4b66963..ea32aae 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleDirectoryPanel.java
@@ -113,16 +113,16 @@
         columns.add(new PropertyColumn<>(
                 new StringResourceModel("rule", this), "implementationKey", "implementationKey"));
 
-        columns.add(new AbstractColumn<PolicyRuleWrapper, String>(
-                new StringResourceModel("configuration", this)) {
+        columns.add(new AbstractColumn<>(
+            new StringResourceModel("configuration", this)) {
 
             private static final long serialVersionUID = -4008579357070833846L;
 
             @Override
             public void populateItem(
-                    final Item<ICellPopulator<PolicyRuleWrapper>> cellItem,
-                    final String componentId,
-                    final IModel<PolicyRuleWrapper> rowModel) {
+                final Item<ICellPopulator<PolicyRuleWrapper>> cellItem,
+                final String componentId,
+                final IModel<PolicyRuleWrapper> rowModel) {
 
                 if (rowModel.getObject().getConf() == null) {
                     cellItem.add(new Label(componentId, ""));
@@ -138,7 +138,7 @@
     public ActionsPanel<PolicyRuleWrapper> getActions(final IModel<PolicyRuleWrapper> model) {
         final ActionsPanel<PolicyRuleWrapper> panel = super.getActions(model);
 
-        panel.add(new ActionLink<PolicyRuleWrapper>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -150,11 +150,11 @@
                     ((BaseWebPage) pageRef.getPage()).getNotificationPanel().refresh(target);
                 } else {
                     send(PolicyRuleDirectoryPanel.this, Broadcast.EXACT,
-                            new AjaxWizard.EditItemActionEvent<>(model.getObject(), target));
+                        new AjaxWizard.EditItemActionEvent<>(model.getObject(), target));
                 }
             }
         }, ActionLink.ActionType.EDIT, IdRepoEntitlement.POLICY_UPDATE);
-        panel.add(new ActionLink<PolicyRuleWrapper>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -185,7 +185,7 @@
     public ActionsPanel<Serializable> getHeader(final String componentId) {
         final ActionsPanel<Serializable> panel = new ActionsPanel<>(componentId, null);
 
-        panel.add(new ActionLink<Serializable>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleWizardBuilder.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleWizardBuilder.java
index 25c2300..7bad87d 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleWizardBuilder.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleWizardBuilder.java
@@ -176,7 +176,7 @@
         private static final long serialVersionUID = -785981096328637758L;
 
         public Configuration(final PolicyRuleWrapper rule) {
-            LoadableDetachableModel<Serializable> bean = new LoadableDetachableModel<Serializable>() {
+            LoadableDetachableModel<Serializable> bean = new LoadableDetachableModel<>() {
 
                 private static final long serialVersionUID = 2092144708018739371L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportDirectoryPanel.java
index 8f99942..d90efdf 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportDirectoryPanel.java
@@ -129,24 +129,24 @@
         columns.add(new BooleanPropertyColumn<>(
                 new StringResourceModel("active", this), "active", "active"));
 
-        columns.add(new AbstractColumn<ReportTO, String>(new Model<>(""), "running") {
+        columns.add(new AbstractColumn<>(new Model<>(""), "running") {
 
             private static final long serialVersionUID = 4209532514416998046L;
 
             @Override
             public void populateItem(
-                    final Item<ICellPopulator<ReportTO>> cellItem,
-                    final String componentId,
-                    final IModel<ReportTO> rowModel) {
+                final Item<ICellPopulator<ReportTO>> cellItem,
+                final String componentId,
+                final IModel<ReportTO> rowModel) {
 
                 Component panel;
                 try {
                     JobTO jobTO = ReportRestClient.getJob(rowModel.getObject().getKey());
                     panel = new JobActionPanel(componentId, jobTO, false, ReportDirectoryPanel.this);
                     MetaDataRoleAuthorizationStrategy.authorize(panel, WebPage.ENABLE,
-                            String.format("%s,%s",
-                                    IdRepoEntitlement.REPORT_EXECUTE,
-                                    IdRepoEntitlement.REPORT_UPDATE));
+                        String.format("%s,%s",
+                            IdRepoEntitlement.REPORT_EXECUTE,
+                            IdRepoEntitlement.REPORT_UPDATE));
                 } catch (Exception e) {
                     LOG.error("Could not get job for report {}", rowModel.getObject().getKey(), e);
                     panel = new Label(componentId, Model.of());
@@ -177,19 +177,19 @@
     public ActionsPanel<ReportTO> getActions(final IModel<ReportTO> model) {
         final ActionsPanel<ReportTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<ReportTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final ReportTO ignore) {
                 send(ReportDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(
-                                ReportRestClient.read(model.getObject().getKey()), target));
+                    new AjaxWizard.EditItemActionEvent<>(
+                        ReportRestClient.read(model.getObject().getKey()), target));
             }
         }, ActionLink.ActionType.EDIT, IdRepoEntitlement.REPORT_UPDATE);
 
-        panel.add(new ActionLink<ReportTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -198,26 +198,26 @@
                 final ReportTO clone = SerializationUtils.clone(model.getObject());
                 clone.setKey(null);
                 send(ReportDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(clone, target));
+                    new AjaxWizard.EditItemActionEvent<>(clone, target));
             }
         }, ActionLink.ActionType.CLONE, IdRepoEntitlement.REPORT_CREATE);
 
-        panel.add(new ActionLink<ReportTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final ReportTO ignore) {
                 target.add(modal.setContent(new ReportletDirectoryPanel(
-                        modal, model.getObject().getKey(), pageRef)));
+                    modal, model.getObject().getKey(), pageRef)));
 
                 modal.header(new StringResourceModel(
-                        "reportlet.conf", ReportDirectoryPanel.this, Model.of(model.getObject())));
+                    "reportlet.conf", ReportDirectoryPanel.this, Model.of(model.getObject())));
                 modal.show(true);
             }
         }, ActionLink.ActionType.COMPOSE, IdRepoEntitlement.REPORT_UPDATE);
 
-        panel.add(new ActionLink<ReportTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -227,19 +227,19 @@
             }
         }, ActionLink.ActionType.VIEW_EXECUTIONS, IdRepoEntitlement.REPORT_READ);
 
-        panel.add(new ActionLink<ReportTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final ReportTO ignore) {
                 startAt.setExecutionDetail(
-                        model.getObject().getKey(), model.getObject().getName(), target);
+                    model.getObject().getKey(), model.getObject().getName(), target);
                 startAt.toggle(target, true);
             }
         }, ActionLink.ActionType.EXECUTE, IdRepoEntitlement.REPORT_EXECUTE);
 
-        panel.add(new ActionLink<ReportTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportExecutionDetails.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportExecutionDetails.java
index 5d820e0..fb72467 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportExecutionDetails.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportExecutionDetails.java
@@ -80,62 +80,62 @@
 
         @Override
         protected void addFurtherActions(final ActionsPanel<ExecTO> panel, final IModel<ExecTO> model) {
-            panel.add(new ActionLink<ExecTO>() {
+            panel.add(new ActionLink<>() {
 
                 private static final long serialVersionUID = -3722207913631435501L;
 
                 @Override
                 public void onClick(final AjaxRequestTarget target, final ExecTO ignore) {
                     downloadBehavior.setResponse(new ResponseHolder(ReportRestClient.exportExecutionResult(
-                            model.getObject().getKey(), ReportExecExportFormat.CSV)));
+                        model.getObject().getKey(), ReportExecExportFormat.CSV)));
                     downloadBehavior.initiate(target);
                 }
             }, ActionLink.ActionType.EXPORT_CSV, IdRepoEntitlement.REPORT_READ);
 
-            panel.add(new ActionLink<ExecTO>() {
+            panel.add(new ActionLink<>() {
 
                 private static final long serialVersionUID = -3722207913631435501L;
 
                 @Override
                 public void onClick(final AjaxRequestTarget target, final ExecTO ignore) {
                     downloadBehavior.setResponse(new ResponseHolder(ReportRestClient.exportExecutionResult(
-                            model.getObject().getKey(), ReportExecExportFormat.HTML)));
+                        model.getObject().getKey(), ReportExecExportFormat.HTML)));
                     downloadBehavior.initiate(target);
                 }
             }, ActionLink.ActionType.EXPORT_HTML, IdRepoEntitlement.REPORT_READ);
 
-            panel.add(new ActionLink<ExecTO>() {
+            panel.add(new ActionLink<>() {
 
                 private static final long serialVersionUID = -3722207913631435501L;
 
                 @Override
                 public void onClick(final AjaxRequestTarget target, final ExecTO ignore) {
                     downloadBehavior.setResponse(new ResponseHolder(ReportRestClient.exportExecutionResult(
-                            model.getObject().getKey(), ReportExecExportFormat.PDF)));
+                        model.getObject().getKey(), ReportExecExportFormat.PDF)));
                     downloadBehavior.initiate(target);
                 }
             }, ActionLink.ActionType.EXPORT_PDF, IdRepoEntitlement.REPORT_READ);
 
-            panel.add(new ActionLink<ExecTO>() {
+            panel.add(new ActionLink<>() {
 
                 private static final long serialVersionUID = -3722207913631435501L;
 
                 @Override
                 public void onClick(final AjaxRequestTarget target, final ExecTO ignore) {
                     downloadBehavior.setResponse(new ResponseHolder(ReportRestClient.exportExecutionResult(
-                            model.getObject().getKey(), ReportExecExportFormat.RTF)));
+                        model.getObject().getKey(), ReportExecExportFormat.RTF)));
                     downloadBehavior.initiate(target);
                 }
             }, ActionLink.ActionType.EXPORT_RTF, IdRepoEntitlement.REPORT_READ);
 
-            panel.add(new ActionLink<ExecTO>() {
+            panel.add(new ActionLink<>() {
 
                 private static final long serialVersionUID = -3722207913631435501L;
 
                 @Override
                 public void onClick(final AjaxRequestTarget target, final ExecTO ignore) {
                     downloadBehavior.setResponse(new ResponseHolder(ReportRestClient.exportExecutionResult(
-                            model.getObject().getKey(), ReportExecExportFormat.XML)));
+                        model.getObject().getKey(), ReportExecExportFormat.XML)));
                     downloadBehavior.initiate(target);
                 }
             }, ActionLink.ActionType.EXPORT_XML, IdRepoEntitlement.REPORT_READ);
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportTemplateDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportTemplateDirectoryPanel.java
index 6e50db9..bd4f3ed 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportTemplateDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportTemplateDirectoryPanel.java
@@ -113,16 +113,16 @@
     public ActionsPanel<ReportTemplateTO> getActions(final IModel<ReportTemplateTO> model) {
         final ActionsPanel<ReportTemplateTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<ReportTemplateTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770645L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final ReportTemplateTO ignore) {
                 TemplateContent<ReportTemplateFormat> content = new TemplateContent<>(model.getObject().getKey(),
-                        ReportTemplateFormat.FO);
+                    ReportTemplateFormat.FO);
                 content.setContent(
-                        restClient.readTemplateFormat(model.getObject().getKey(), ReportTemplateFormat.FO));
+                    restClient.readTemplateFormat(model.getObject().getKey(), ReportTemplateFormat.FO));
 
                 utilityModal.header(new ResourceModel("report.template.fo", "XSLT for XSL-FO"));
                 utilityModal.setContent(new TemplateContentEditorPanel(content, pageRef));
@@ -131,16 +131,16 @@
             }
         }, ActionLink.ActionType.FO_EDIT, IdRepoEntitlement.REPORT_TEMPLATE_UPDATE);
 
-        panel.add(new ActionLink<ReportTemplateTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770645L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final ReportTemplateTO ignore) {
                 TemplateContent<ReportTemplateFormat> content = new TemplateContent<>(model.getObject().getKey(),
-                        ReportTemplateFormat.HTML);
+                    ReportTemplateFormat.HTML);
                 content.setContent(
-                        restClient.readTemplateFormat(model.getObject().getKey(), ReportTemplateFormat.HTML));
+                    restClient.readTemplateFormat(model.getObject().getKey(), ReportTemplateFormat.HTML));
 
                 utilityModal.header(new ResourceModel("report.template.html", "XSLT for HTML"));
                 utilityModal.setContent(new TemplateContentEditorPanel(content, pageRef));
@@ -149,16 +149,16 @@
             }
         }, ActionLink.ActionType.HTML, IdRepoEntitlement.REPORT_TEMPLATE_UPDATE);
 
-        panel.add(new ActionLink<ReportTemplateTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770645L;
 
             @Override
             public void onClick(final AjaxRequestTarget target, final ReportTemplateTO ignore) {
                 TemplateContent<ReportTemplateFormat> content = new TemplateContent<>(model.getObject().getKey(),
-                        ReportTemplateFormat.CSV);
+                    ReportTemplateFormat.CSV);
                 content.setContent(
-                        restClient.readTemplateFormat(model.getObject().getKey(), ReportTemplateFormat.CSV));
+                    restClient.readTemplateFormat(model.getObject().getKey(), ReportTemplateFormat.CSV));
 
                 utilityModal.header(new ResourceModel("report.template.csv", "XSLT for CSV"));
                 utilityModal.setContent(new TemplateContentEditorPanel(content, pageRef));
@@ -167,7 +167,7 @@
             }
         }, ActionLink.ActionType.TEXT, IdRepoEntitlement.REPORT_TEMPLATE_UPDATE);
 
-        panel.add(new ActionLink<ReportTemplateTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -243,7 +243,7 @@
                 final TemplateContent<ReportTemplateFormat> content,
                 final PageReference pageRef) {
 
-            super(utilityModal, new PropertyModel<String>(content, "content"), false, pageRef);
+            super(utilityModal, new PropertyModel<>(content, "content"), false, pageRef);
             this.content = content;
         }
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportletDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportletDirectoryPanel.java
index 1b7f008..cf9ac9a 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportletDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportletDirectoryPanel.java
@@ -102,16 +102,16 @@
         columns.add(new PropertyColumn<>(
                 new StringResourceModel("reportlet", this), "implementationKey", "implementationKey"));
 
-        columns.add(new AbstractColumn<ReportletWrapper, String>(
-                new StringResourceModel("configuration", this)) {
+        columns.add(new AbstractColumn<>(
+            new StringResourceModel("configuration", this)) {
 
             private static final long serialVersionUID = -4008579357070833846L;
 
             @Override
             public void populateItem(
-                    final Item<ICellPopulator<ReportletWrapper>> cellItem,
-                    final String componentId,
-                    final IModel<ReportletWrapper> rowModel) {
+                final Item<ICellPopulator<ReportletWrapper>> cellItem,
+                final String componentId,
+                final IModel<ReportletWrapper> rowModel) {
 
                 if (rowModel.getObject().getConf() == null) {
                     cellItem.add(new Label(componentId, ""));
@@ -128,7 +128,7 @@
     public ActionsPanel<ReportletWrapper> getActions(final IModel<ReportletWrapper> model) {
         final ActionsPanel<ReportletWrapper> panel = super.getActions(model);
 
-        panel.add(new ActionLink<ReportletWrapper>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -139,11 +139,11 @@
                     SyncopeConsoleSession.get().info(getString("noConf"));
                 } else {
                     send(ReportletDirectoryPanel.this, Broadcast.EXACT,
-                            new AjaxWizard.EditItemActionEvent<>(model.getObject(), target));
+                        new AjaxWizard.EditItemActionEvent<>(model.getObject(), target));
                 }
             }
         }, ActionLink.ActionType.EDIT, IdRepoEntitlement.REPORT_UPDATE);
-        panel.add(new ActionLink<ReportletWrapper>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -172,7 +172,7 @@
     public ActionsPanel<Serializable> getHeader(final String componentId) {
         final ActionsPanel<Serializable> panel = new ActionsPanel<>(componentId, null);
 
-        panel.add(new ActionLink<Serializable>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportletWizardBuilder.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportletWizardBuilder.java
index 722cb50..0f96fe0 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportletWizardBuilder.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/reports/ReportletWizardBuilder.java
@@ -135,7 +135,7 @@
         private static final long serialVersionUID = -785981096328637758L;
 
         public Configuration(final ReportletWrapper reportlet) {
-            LoadableDetachableModel<Serializable> bean = new LoadableDetachableModel<Serializable>() {
+            LoadableDetachableModel<Serializable> bean = new LoadableDetachableModel<>() {
 
                 private static final long serialVersionUID = 2092144708018739371L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/AbstractAnyRestClient.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/AbstractAnyRestClient.java
index 3f38b87..ce29816 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/AbstractAnyRestClient.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/AbstractAnyRestClient.java
@@ -65,7 +65,7 @@
         ProvisioningResult<TO> result;
         synchronized (this) {
             result = getService(etag, getAnyServiceClass()).delete(key).
-                    readEntity(new GenericType<ProvisioningResult<TO>>() {
+                    readEntity(new GenericType<>() {
                     });
             resetClient(getAnyServiceClass());
         }
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/AnyObjectRestClient.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/AnyObjectRestClient.java
index 3add237..f4ae48d 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/AnyObjectRestClient.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/AnyObjectRestClient.java
@@ -44,7 +44,7 @@
 
     public static ProvisioningResult<AnyObjectTO> create(final AnyObjectCR createReq) {
         Response response = getService(AnyObjectService.class).create(createReq);
-        return response.readEntity(new GenericType<ProvisioningResult<AnyObjectTO>>() {
+        return response.readEntity(new GenericType<>() {
         });
     }
 
@@ -52,7 +52,7 @@
         ProvisioningResult<AnyObjectTO> result;
         synchronized (this) {
             result = getService(etag, AnyObjectService.class).update(updateReq).
-                    readEntity(new GenericType<ProvisioningResult<AnyObjectTO>>() {
+                    readEntity(new GenericType<>() {
                     });
             resetClient(getAnyServiceClass());
         }
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java
index 2a1c2f6..4cc41a0 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java
@@ -45,7 +45,7 @@
 
     public static ProvisioningResult<GroupTO> create(final GroupCR groupCR) {
         Response response = getService(GroupService.class).create(groupCR);
-        return response.readEntity(new GenericType<ProvisioningResult<GroupTO>>() {
+        return response.readEntity(new GenericType<>() {
         });
     }
 
@@ -53,7 +53,7 @@
         ProvisioningResult<GroupTO> result;
         synchronized (this) {
             result = getService(etag, GroupService.class).update(updateReq).
-                    readEntity(new GenericType<ProvisioningResult<GroupTO>>() {
+                    readEntity(new GenericType<>() {
                     });
             resetClient(getAnyServiceClass());
         }
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/RealmRestClient.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/RealmRestClient.java
index 5482c3d..1581dd3 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/RealmRestClient.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/RealmRestClient.java
@@ -55,13 +55,13 @@
 
     public static ProvisioningResult<RealmTO> create(final String parentPath, final RealmTO realmTO) {
         final Response response = getService(RealmService.class).create(parentPath, realmTO);
-        return response.readEntity(new GenericType<ProvisioningResult<RealmTO>>() {
+        return response.readEntity(new GenericType<>() {
         });
     }
 
     public static ProvisioningResult<RealmTO> update(final RealmTO realmTO) {
         final Response response = getService(RealmService.class).update(realmTO);
-        return response.readEntity(new GenericType<ProvisioningResult<RealmTO>>() {
+        return response.readEntity(new GenericType<>() {
         });
     }
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java
index eb69255..a25ad37 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java
@@ -54,7 +54,7 @@
 
     public static ProvisioningResult<UserTO> create(final UserCR createReq) {
         Response response = getService(UserService.class).create(createReq);
-        return response.readEntity(new GenericType<ProvisioningResult<UserTO>>() {
+        return response.readEntity(new GenericType<>() {
         });
     }
 
@@ -62,7 +62,7 @@
         ProvisioningResult<UserTO> result;
         synchronized (this) {
             result = getService(etag, UserService.class).update(updateReq).
-                    readEntity(new GenericType<ProvisioningResult<UserTO>>() {
+                    readEntity(new GenericType<>() {
                     });
             resetClient(getAnyServiceClass());
         }
@@ -101,7 +101,7 @@
         Map<String, String> results;
         synchronized (this) {
             ProvisioningResult<UserTO> provisioningResult = getService(etag, UserService.class).status(statusR).
-                    readEntity(new GenericType<ProvisioningResult<UserTO>>() {
+                    readEntity(new GenericType<>() {
                     });
 
             statuses.forEach(statusBean -> statusBean.setStatus(Status.UNDEFINED));
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/CrontabPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/CrontabPanel.java
index 997b3e8..9f77d68 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/CrontabPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/CrontabPanel.java
@@ -69,7 +69,7 @@
         cronTemplateChooser.setNullValid(false);
         cronTemplateChooser.setPlaceholder("chooseForTemplate");
 
-        cronTemplateChooser.getField().setModel(new IModel<SelectOption>() {
+        cronTemplateChooser.getField().setModel(new IModel<>() {
 
             private static final long serialVersionUID = 6762568283146531315L;
 
@@ -88,8 +88,8 @@
             @Override
             public void setObject(final SelectOption object) {
                 cronExpressionModel.setObject(object == null || object.equals(cronTemplates[0])
-                        ? null
-                        : object.toString());
+                    ? null
+                    : object.toString());
             }
 
             @Override
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/ExecutionsDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/ExecutionsDirectoryPanel.java
index afcd7d2..0ae871c 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/ExecutionsDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/ExecutionsDirectoryPanel.java
@@ -115,7 +115,7 @@
         final ActionsPanel<ExecTO> panel = super.getActions(model);
         final ExecTO taskExecutionTO = model.getObject();
 
-        panel.add(new ActionLink<ExecTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -123,10 +123,10 @@
             public void onClick(final AjaxRequestTarget target, final ExecTO ignore) {
                 ExecutionsDirectoryPanel.this.getTogglePanel().close(target);
                 next(new StringResourceModel("execution.view", ExecutionsDirectoryPanel.this, model).
-                        getObject(), new ExecMessage(model.getObject().getMessage()), target);
+                    getObject(), new ExecMessage(model.getObject().getMessage()), target);
             }
         }, ActionLink.ActionType.VIEW, IdRepoEntitlement.TASK_READ);
-        panel.add(new ActionLink<ExecTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -198,7 +198,7 @@
         @Override
         public IModel<ExecTO> model(final ExecTO taskExecution) {
 
-            return new IModel<ExecTO>() {
+            return new IModel<>() {
 
                 private static final long serialVersionUID = 7485475149862342421L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/NotificationTaskDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/NotificationTaskDirectoryPanel.java
index 9d23000..64dcb57 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/NotificationTaskDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/NotificationTaskDirectoryPanel.java
@@ -108,7 +108,7 @@
         final ActionsPanel<NotificationTaskTO> panel = super.getActions(model);
         final NotificationTaskTO taskTO = model.getObject();
 
-        panel.add(new ActionLink<NotificationTaskTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -117,7 +117,7 @@
                 viewTask(taskTO, target);
             }
         }, ActionLink.ActionType.VIEW, IdRepoEntitlement.TASK_READ);
-        panel.add(new ActionLink<NotificationTaskTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -126,7 +126,7 @@
                 viewMailBody(MailTemplateFormat.TEXT, taskTO.getTextBody(), target);
             }
         }, ActionLink.ActionType.TEXT, IdRepoEntitlement.TASK_READ);
-        panel.add(new ActionLink<NotificationTaskTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -135,7 +135,7 @@
                 viewMailBody(MailTemplateFormat.HTML, taskTO.getHtmlBody(), target);
             }
         }, ActionLink.ActionType.HTML, IdRepoEntitlement.TASK_READ);
-        panel.add(new ActionLink<NotificationTaskTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -152,7 +152,7 @@
                 ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
             }
         }, ActionLink.ActionType.EXECUTE, IdRepoEntitlement.TASK_EXECUTE);
-        panel.add(new ActionLink<NotificationTaskTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.java
index 7d9df4a..e5fd146 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.java
@@ -80,8 +80,8 @@
             columns.add(new PropertyColumn<>(
                     new StringResourceModel("resource", this), "resource", "resource"));
         } else {
-            columns.add(new PropertyColumn<PropagationTaskTO, String>(
-                    new StringResourceModel("anyTypeKind", this), "anyTypeKind", "anyTypeKind") {
+            columns.add(new PropertyColumn<>(
+                new StringResourceModel("anyTypeKind", this), "anyTypeKind", "anyTypeKind") {
 
                 private static final long serialVersionUID = 3344577098912281394L;
 
@@ -118,7 +118,7 @@
         final ActionsPanel<PropagationTaskTO> panel = super.getActions(model);
         final PropagationTaskTO taskTO = model.getObject();
 
-        panel.add(new ActionLink<PropagationTaskTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -130,7 +130,7 @@
         }, ActionLink.ActionType.VIEW_EXECUTIONS, IdRepoEntitlement.TASK_READ);
 
         // [SYNCOPE-1115] - Display attributes for propagation tasks
-        panel.add(new ActionLink<PropagationTaskTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = 9206257220553949594L;
 
@@ -141,7 +141,7 @@
             }
         }, ActionLink.ActionType.VIEW_DETAILS, IdRepoEntitlement.TASK_READ);
 
-        panel.add(new ActionLink<PropagationTaskTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -159,7 +159,7 @@
             }
         }, ActionLink.ActionType.EXECUTE, IdRepoEntitlement.TASK_EXECUTE);
 
-        panel.add(new ActionLink<PropagationTaskTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/ProvisioningTaskDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/ProvisioningTaskDirectoryPanel.java
index e779e52..c83b50b 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/ProvisioningTaskDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/ProvisioningTaskDirectoryPanel.java
@@ -133,23 +133,23 @@
         columns.add(new BooleanPropertyColumn<>(
                 new StringResourceModel("active", this), "active", "active"));
 
-        columns.add(new AbstractColumn<T, String>(new Model<>(""), "running") {
+        columns.add(new AbstractColumn<>(new Model<>(""), "running") {
 
             private static final long serialVersionUID = -4008579357070833846L;
 
             @Override
             public void populateItem(
-                    final Item<ICellPopulator<T>> cellItem,
-                    final String componentId,
-                    final IModel<T> rowModel) {
+                final Item<ICellPopulator<T>> cellItem,
+                final String componentId,
+                final IModel<T> rowModel) {
 
                 Component panel;
                 try {
                     JobTO jobTO = TaskRestClient.getJob(rowModel.getObject().getKey());
                     panel = new JobActionPanel(componentId, jobTO, false, ProvisioningTaskDirectoryPanel.this);
                     MetaDataRoleAuthorizationStrategy.authorize(
-                            panel, WebPage.ENABLE,
-                            String.format("%s,%s", IdRepoEntitlement.TASK_EXECUTE, IdRepoEntitlement.TASK_UPDATE));
+                        panel, WebPage.ENABLE,
+                        String.format("%s,%s", IdRepoEntitlement.TASK_EXECUTE, IdRepoEntitlement.TASK_UPDATE));
                 } catch (Exception e) {
                     LOG.error("Could not get job for task {}", rowModel.getObject().getKey(), e);
                     panel = new Label(componentId, Model.of());
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PullTaskDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PullTaskDirectoryPanel.java
index 0ddbcdd..b496930 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PullTaskDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PullTaskDirectoryPanel.java
@@ -55,7 +55,7 @@
 
     @Override
     protected void addFurtherActions(final ActionsPanel<PullTaskTO> panel, final IModel<PullTaskTO> model) {
-        panel.add(new ActionLink<PullTaskTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PushTaskFilters.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PushTaskFilters.java
index 5a0e02c..002747d 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PushTaskFilters.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PushTaskFilters.java
@@ -41,7 +41,7 @@
     public PushTaskFilters(final PushTaskWrapper pushTaskWrapper) {
         super();
 
-        final LoadableDetachableModel<List<AnyTypeTO>> types = new LoadableDetachableModel<List<AnyTypeTO>>() {
+        final LoadableDetachableModel<List<AnyTypeTO>> types = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
@@ -51,7 +51,7 @@
             }
         };
 
-        add(new ListView<AnyTypeTO>("filters", types) {
+        add(new ListView<>("filters", types) {
 
             private static final long serialVersionUID = 9101744072914090143L;
 
@@ -59,19 +59,19 @@
             protected void populateItem(final ListItem<AnyTypeTO> item) {
                 final String key = item.getModelObject().getKey();
                 item.add(new Accordion("filters", List.of(
-                        new AbstractTab(new StringResourceModel(
-                                "filters", this, new Model<>(item.getModelObject()))) {
+                    new AbstractTab(new StringResourceModel(
+                        "filters", this, new Model<>(item.getModelObject()))) {
 
-                    private static final long serialVersionUID = 1037272333056449378L;
+                        private static final long serialVersionUID = 1037272333056449378L;
 
-                    @Override
-                    public Panel getPanel(final String panelId) {
-                        return new AnyObjectSearchPanel.Builder(
+                        @Override
+                        public Panel getPanel(final String panelId) {
+                            return new AnyObjectSearchPanel.Builder(
                                 key, new MapOfListModel<>(pushTaskWrapper, "filterClauses", key)).
                                 required(false).build(panelId);
-                    }
-                }), Model.of(StringUtils.isBlank(pushTaskWrapper.getFilters().get(key)) ? -1 : 0))
-                        .setOutputMarkupId(true));
+                        }
+                    }), Model.of(StringUtils.isBlank(pushTaskWrapper.getFilters().get(key)) ? -1 : 0))
+                    .setOutputMarkupId(true));
             }
         });
     }
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java
index 8b15345..27e2eaf 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java
@@ -155,16 +155,16 @@
                 new StringResourceModel(Constants.NAME_FIELD_NAME, this),
                 Constants.NAME_FIELD_NAME, Constants.NAME_FIELD_NAME));
 
-        columns.add(new PropertyColumn<T, String>(
-                new StringResourceModel("jobDelegate", this), "jobDelegate", "jobDelegate") {
+        columns.add(new PropertyColumn<>(
+            new StringResourceModel("jobDelegate", this), "jobDelegate", "jobDelegate") {
 
             private static final long serialVersionUID = -3223917055078733093L;
 
             @Override
             public void populateItem(
-                    final Item<ICellPopulator<T>> item,
-                    final String componentId,
-                    final IModel<T> rowModel) {
+                final Item<ICellPopulator<T>> item,
+                final String componentId,
+                final IModel<T> rowModel) {
 
                 IModel<?> model = getDataModel(rowModel);
                 if (model != null && model.getObject() instanceof String) {
@@ -192,23 +192,23 @@
         columns.add(new BooleanPropertyColumn<>(
                 new StringResourceModel("active", this), "active", "active"));
 
-        columns.add(new AbstractColumn<T, String>(new Model<>(""), "running") {
+        columns.add(new AbstractColumn<>(new Model<>(""), "running") {
 
             private static final long serialVersionUID = -4008579357070833846L;
 
             @Override
             public void populateItem(
-                    final Item<ICellPopulator<T>> cellItem,
-                    final String componentId,
-                    final IModel<T> rowModel) {
+                final Item<ICellPopulator<T>> cellItem,
+                final String componentId,
+                final IModel<T> rowModel) {
 
                 Component panel;
                 try {
                     JobTO jobTO = restClient.getJob(rowModel.getObject().getKey());
                     panel = new JobActionPanel(componentId, jobTO, false, SchedTaskDirectoryPanel.this);
                     MetaDataRoleAuthorizationStrategy.authorize(
-                            panel, WebPage.ENABLE,
-                            String.format("%s,%s", IdRepoEntitlement.TASK_EXECUTE, IdRepoEntitlement.TASK_UPDATE));
+                        panel, WebPage.ENABLE,
+                        String.format("%s,%s", IdRepoEntitlement.TASK_EXECUTE, IdRepoEntitlement.TASK_UPDATE));
                 } catch (Exception e) {
                     LOG.error("Could not get job for task {}", rowModel.getObject().getKey(), e);
                     panel = new Label(componentId, Model.of());
@@ -238,7 +238,7 @@
         final ActionsPanel<T> panel = super.getActions(model);
         final T taskTO = model.getObject();
 
-        panel.add(new ActionLink<T>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -249,7 +249,7 @@
             }
         }, ActionLink.ActionType.VIEW_EXECUTIONS, IdRepoEntitlement.TASK_READ);
 
-        panel.add(new ActionLink<T>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -257,16 +257,16 @@
             public void onClick(final AjaxRequestTarget target, final T ignore) {
                 SchedTaskDirectoryPanel.this.getTogglePanel().close(target);
                 send(SchedTaskDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(
-                                TaskRestClient.readTask(taskType, model.getObject().getKey()),
-                                target).setResourceModel(
-                                new StringResourceModel("inner.task.edit",
-                                        SchedTaskDirectoryPanel.this,
-                                        Model.of(Pair.of(ActionLink.ActionType.EDIT, model.getObject())))));
+                    new AjaxWizard.EditItemActionEvent<>(
+                        TaskRestClient.readTask(taskType, model.getObject().getKey()),
+                        target).setResourceModel(
+                        new StringResourceModel("inner.task.edit",
+                            SchedTaskDirectoryPanel.this,
+                            Model.of(Pair.of(ActionLink.ActionType.EDIT, model.getObject())))));
             }
         }, ActionLink.ActionType.EDIT, IdRepoEntitlement.TASK_UPDATE);
 
-        panel.add(new ActionLink<T>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -276,14 +276,14 @@
                 final T clone = SerializationUtils.clone(model.getObject());
                 clone.setKey(null);
                 send(SchedTaskDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(clone, target).setResourceModel(
-                                new StringResourceModel("inner.task.clone",
-                                        SchedTaskDirectoryPanel.this,
-                                        Model.of(Pair.of(ActionLink.ActionType.CLONE, model.getObject())))));
+                    new AjaxWizard.EditItemActionEvent<>(clone, target).setResourceModel(
+                        new StringResourceModel("inner.task.clone",
+                            SchedTaskDirectoryPanel.this,
+                            Model.of(Pair.of(ActionLink.ActionType.CLONE, model.getObject())))));
             }
         }, ActionLink.ActionType.CLONE, IdRepoEntitlement.TASK_CREATE);
 
-        panel.add(new ActionLink<T>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -297,7 +297,7 @@
 
         addFurtherActions(panel, model);
 
-        panel.add(new ActionLink<T>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskWizardBuilder.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskWizardBuilder.java
index 8ddc0bf..f534a9f 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskWizardBuilder.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskWizardBuilder.java
@@ -197,7 +197,7 @@
 
             final AjaxSearchFieldPanel destinationRealm =
                     new AjaxSearchFieldPanel("destinationRealm", "destinationRealm",
-                            new PropertyModel<String>(taskTO, "destinationRealm"), settings) {
+                        new PropertyModel<>(taskTO, "destinationRealm"), settings) {
 
                 private static final long serialVersionUID = -6390474600233486704L;
 
@@ -233,7 +233,7 @@
             }
 
             final AjaxSearchFieldPanel sourceRealm = new AjaxSearchFieldPanel("sourceRealm", "sourceRealm",
-                    new PropertyModel<String>(taskTO, "sourceRealm"), settings) {
+                new PropertyModel<>(taskTO, "sourceRealm"), settings) {
 
                 private static final long serialVersionUID = -6390474600233486704L;
 
@@ -265,7 +265,7 @@
             AjaxPalettePanel<String> actions = new AjaxPalettePanel.Builder<String>().
                     setAllowMoveAll(true).setAllowOrder(true).
                     build("actions",
-                            new PropertyModel<List<String>>(taskTO, "actions"),
+                        new PropertyModel<>(taskTO, "actions"),
                             new ListModel<>(taskTO instanceof PushTaskTO
                                     ? pushActions.getObject() : pullActions.getObject()));
             actions.setOutputMarkupId(true);
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTasks.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTasks.java
index 562d632..10eed40 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTasks.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTasks.java
@@ -39,16 +39,16 @@
         final MultilevelPanel mlp = new MultilevelPanel("tasks");
         add(mlp);
 
-        mlp.setFirstLevel(new SchedTaskDirectoryPanel<SchedTaskTO>(
-                baseModal, mlp, TaskType.SCHEDULED, SchedTaskTO.class, pageReference) {
+        mlp.setFirstLevel(new SchedTaskDirectoryPanel<>(
+            baseModal, mlp, TaskType.SCHEDULED, SchedTaskTO.class, pageReference) {
 
             private static final long serialVersionUID = -2195387360323687302L;
 
             @Override
             protected void viewTask(final SchedTaskTO taskTO, final AjaxRequestTarget target) {
                 mlp.next(
-                        new StringResourceModel("task.view", this, new Model<>(Pair.of(null, taskTO))).getObject(),
-                        new TaskExecutionDetails<>(baseModal, taskTO, pageReference), target);
+                    new StringResourceModel("task.view", this, new Model<>(Pair.of(null, taskTO))).getObject(),
+                    new TaskExecutionDetails<>(baseModal, taskTO, pageReference), target);
             }
         });
     }
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/TaskAttributesDetailsView.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/TaskAttributesDetailsView.java
index 22e6e2d..bacb6a6 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/TaskAttributesDetailsView.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/TaskAttributesDetailsView.java
@@ -46,7 +46,7 @@
 
         Pair<String, String> info = Pair.of(taskTO.getEntityKey(), getJSONInfo(taskTO));
         JsonEditorPanel jsonPanel =
-                new JsonEditorPanel(null, new PropertyModel<String>(info, "value"), true, null) {
+                new JsonEditorPanel(null, new PropertyModel<>(info, "value"), true, null) {
 
             private static final long serialVersionUID = -8927036362466990179L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/TemplatesTogglePanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/TemplatesTogglePanel.java
index 46d68b0..0b37166 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/TemplatesTogglePanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/TemplatesTogglePanel.java
@@ -63,7 +63,7 @@
 
     protected final Model<String> typeModel = new Model<>();
 
-    private final LoadableDetachableModel<List<String>> anyTypes = new LoadableDetachableModel<List<String>>() {
+    private final LoadableDetachableModel<List<String>> anyTypes = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = 5275935387613157437L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AjaxFallbackDataTable.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AjaxFallbackDataTable.java
index 09cf116..6a0628d 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AjaxFallbackDataTable.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/AjaxFallbackDataTable.java
@@ -64,14 +64,14 @@
 
         togglePanel = getTogglePanel();
 
-        addTopToolbar(new AjaxFallbackHeadersToolbar<S>(this, dataProvider) {
+        addTopToolbar(new AjaxFallbackHeadersToolbar<>(this, dataProvider) {
 
             private static final long serialVersionUID = 7406306172424359609L;
 
             @Override
             protected WebMarkupContainer newSortableHeader(
-                    final String borderId, final S property, final ISortStateLocator<S> locator) {
-                return new AjaxFallbackOrderByBorder<S>(borderId, property, locator) {
+                final String borderId, final S property, final ISortStateLocator<S> locator) {
+                return new AjaxFallbackOrderByBorder<>(borderId, property, locator) {
 
                     private static final long serialVersionUID = 8261993963983329775L;
 
@@ -85,14 +85,14 @@
             }
         });
 
-        addBottomToolbar(new AjaxFallbackHeadersToolbar<S>(this, dataProvider) {
+        addBottomToolbar(new AjaxFallbackHeadersToolbar<>(this, dataProvider) {
 
             private static final long serialVersionUID = 7406306172424359609L;
 
             @Override
             protected WebMarkupContainer newSortableHeader(
-                    final String borderId, final S property, final ISortStateLocator<S> locator) {
-                return new AjaxFallbackOrderByBorder<S>(borderId, property, locator) {
+                final String borderId, final S property, final ISortStateLocator<S> locator) {
+                return new AjaxFallbackOrderByBorder<>(borderId, property, locator) {
 
                     private static final long serialVersionUID = 985887006636879421L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/BatchResponseColumn.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/BatchResponseColumn.java
index 273c62f..4cc4c96 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/BatchResponseColumn.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/BatchResponseColumn.java
@@ -48,7 +48,7 @@
     private final String keyFieldName;
 
     public BatchResponseColumn(final Map<String, String> results, final String keyFieldName) {
-        super(new Model<String>());
+        super(new Model<>());
         this.results = results;
         this.keyFieldName = keyFieldName;
     }
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/CheckGroupColumn.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/CheckGroupColumn.java
index 6a9dcd6..6551357 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/CheckGroupColumn.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/CheckGroupColumn.java
@@ -33,7 +33,7 @@
     private final CheckGroup<T> group;
 
     public CheckGroupColumn(final CheckGroup<T> checkGroup) {
-        super(new Model<String>());
+        super(new Model<>());
         this.group = checkGroup;
     }
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java
index 2bdd5b4..a99fe33 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/bootstrap/dialog/BaseModal.java
@@ -88,7 +88,7 @@
         form.setOutputMarkupId(true);
         add(form);
 
-        content = new AbstractModalPanel<T>(this, null) {
+        content = new AbstractModalPanel<>(this, null) {
 
             private static final long serialVersionUID = -6142277554912316095L;
 
@@ -243,7 +243,7 @@
         dialog.setMarkupId(this.getId());
 
         footer = (WebMarkupContainer) this.get("dialog:footer");
-        footer.addOrReplace(new ListView<Component>("inputs", components) {
+        footer.addOrReplace(new ListView<>("inputs", components) {
 
             private static final long serialVersionUID = 4949588177564901031L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel.java
index 6b6c06a..f34ea52 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/ActionsPanel.java
@@ -44,7 +44,7 @@
         setOutputMarkupId(true);
         this.model = model;
 
-        add(new ListView<Action<T>>("actionRepeater", actions) {
+        add(new ListView<>("actionRepeater", actions) {
 
             private static final long serialVersionUID = -9180479401817023838L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxCharacterFieldPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxCharacterFieldPanel.java
index 8247a2a..2d5f1f9 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxCharacterFieldPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxCharacterFieldPanel.java
@@ -59,7 +59,7 @@
         settings.setShowListOnEmptyInput(true);
         settings.setCssClassName("custom-autocomplete-box");
 
-        field = new AutoCompleteTextField<Character>("textField", model, settings) {
+        field = new AutoCompleteTextField<>("textField", model, settings) {
 
             private static final long serialVersionUID = -6648767303091874219L;
 
@@ -70,8 +70,8 @@
 
             @Override
             protected AutoCompleteBehavior<Character> newAutoCompleteBehavior(
-                    final IAutoCompleteRenderer<Character> renderer, final AutoCompleteSettings settings) {
-                return new IndicatorAutoCompleteBehavior<Character>(renderer, settings) {
+                final IAutoCompleteRenderer<Character> renderer, final AutoCompleteSettings settings) {
+                return new IndicatorAutoCompleteBehavior<>(renderer, settings) {
 
                     private static final long serialVersionUID = 1070808433195962931L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxSearchFieldPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxSearchFieldPanel.java
index 1c05f3c..96f0d33 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxSearchFieldPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxSearchFieldPanel.java
@@ -64,7 +64,7 @@
         this.settings = settings;
         this.renderer = renderer;
 
-        field = new AutoCompleteTextField<String>("textField", model, settings) {
+        field = new AutoCompleteTextField<>("textField", model, settings) {
 
             private static final long serialVersionUID = -6648767303091874219L;
 
@@ -75,11 +75,11 @@
 
             @Override
             protected AutoCompleteBehavior<String> newAutoCompleteBehavior(
-                    final IAutoCompleteRenderer<String> renderer, final AutoCompleteSettings settings) {
+                final IAutoCompleteRenderer<String> renderer, final AutoCompleteSettings settings) {
 
-                return new IndicatorAutoCompleteBehavior<String>(
-                        AjaxSearchFieldPanel.this.renderer != null ? AjaxSearchFieldPanel.this.renderer : renderer,
-                        AjaxSearchFieldPanel.this.settings != null ? AjaxSearchFieldPanel.this.settings : settings) {
+                return new IndicatorAutoCompleteBehavior<>(
+                    AjaxSearchFieldPanel.this.renderer != null ? AjaxSearchFieldPanel.this.renderer : renderer,
+                    AjaxSearchFieldPanel.this.settings != null ? AjaxSearchFieldPanel.this.settings : settings) {
 
                     private static final long serialVersionUID = 1070808433195962931L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java
index bc46754..25edaba 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java
@@ -166,7 +166,7 @@
 
         add(fileDownload);
 
-        downloadLink = new AjaxLink<Void>("downloadLink") {
+        downloadLink = new AjaxLink<>("downloadLink") {
 
             private static final long serialVersionUID = -4331619903296515985L;
 
@@ -229,7 +229,7 @@
         });
         uploadForm.add(fileUpload);
 
-        resetLink = new IndicatingAjaxLink<Void>("resetLink") {
+        resetLink = new IndicatingAjaxLink<>("resetLink") {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/MultiFieldPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/MultiFieldPanel.java
index 73cce5b..cf2ce18 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/MultiFieldPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/MultiFieldPanel.java
@@ -75,7 +75,7 @@
         }
 
         public MultiFieldPanel<E> build(final String id, final String name, final FieldPanel<E> panelTemplate) {
-            return new MultiFieldPanel<E>(id, name, model) {
+            return new MultiFieldPanel<>(id, name, model) {
 
                 private static final long serialVersionUID = 6600411297376841521L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/AlertWidget.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/AlertWidget.java
index 4b4af91..ad33969 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/AlertWidget.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/AlertWidget.java
@@ -53,7 +53,7 @@
 
         setOutputMarkupId(true);
 
-        final LoadableDetachableModel<Integer> size = new LoadableDetachableModel<Integer>() {
+        final LoadableDetachableModel<Integer> size = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 7474274077691068779L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/ItemTransformerWidget.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/ItemTransformerWidget.java
index 018b70c..65d34ae 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/ItemTransformerWidget.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/ItemTransformerWidget.java
@@ -50,7 +50,7 @@
 
     @Override
     protected IModel<List<String>> getLatestAlerts() {
-        return new ListModel<String>() {
+        return new ListModel<>() {
 
             private static final long serialVersionUID = 1232998477036705088L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/JEXLTransformerWidget.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/JEXLTransformerWidget.java
index 97f1c57..bb1303d 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/JEXLTransformerWidget.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/JEXLTransformerWidget.java
@@ -55,7 +55,7 @@
 
     @Override
     protected IModel<List<String>> getLatestAlerts() {
-        return new ListModel<String>() {
+        return new ListModel<>() {
 
             private static final long serialVersionUID = -2583290457773357445L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java
index 4bbd68d..12dde2d 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java
@@ -92,7 +92,7 @@
 
     private final ActionLinksTogglePanel<JobTO> actionTogglePanel;
 
-    private final BaseModal<Serializable> modal = new BaseModal<Serializable>("modal") {
+    private final BaseModal<Serializable> modal = new BaseModal<>("modal") {
 
         private static final long serialVersionUID = 389935548143327858L;
 
@@ -103,7 +103,7 @@
         }
     };
 
-    private final BaseModal<Serializable> detailModal = new BaseModal<Serializable>("detailModal") {
+    private final BaseModal<Serializable> detailModal = new BaseModal<>("detailModal") {
 
         private static final long serialVersionUID = 389935548143327858L;
 
@@ -114,7 +114,7 @@
         }
     };
 
-    private final BaseModal<ReportTO> reportModal = new BaseModal<ReportTO>("reportModal") {
+    private final BaseModal<ReportTO> reportModal = new BaseModal<>("reportModal") {
 
         private static final long serialVersionUID = 389935548143327858L;
 
@@ -318,15 +318,15 @@
 
             columns.add(new DatePropertyColumn<>(new ResourceModel("start"), "start", "start"));
 
-            columns.add(new AbstractColumn<JobTO, String>(new Model<>(""), "running") {
+            columns.add(new AbstractColumn<>(new Model<>(""), "running") {
 
                 private static final long serialVersionUID = -4008579357070833846L;
 
                 @Override
                 public void populateItem(
-                        final Item<ICellPopulator<JobTO>> cellItem,
-                        final String componentId,
-                        final IModel<JobTO> rowModel) {
+                    final Item<ICellPopulator<JobTO>> cellItem,
+                    final String componentId,
+                    final IModel<JobTO> rowModel) {
 
                     JobTO jobTO = rowModel.getObject();
                     JobActionPanel panel = new JobActionPanel(componentId, jobTO, true, JobWidget.this);
@@ -335,17 +335,17 @@
                     switch (jobTO.getType()) {
                         case TASK:
                             roles = String.format("%s,%s",
-                                    IdRepoEntitlement.TASK_EXECUTE, IdRepoEntitlement.TASK_UPDATE);
+                                IdRepoEntitlement.TASK_EXECUTE, IdRepoEntitlement.TASK_UPDATE);
                             break;
 
                         case REPORT:
                             roles = String.format("%s,%s",
-                                    IdRepoEntitlement.REPORT_EXECUTE, IdRepoEntitlement.REPORT_UPDATE);
+                                IdRepoEntitlement.REPORT_EXECUTE, IdRepoEntitlement.REPORT_UPDATE);
                             break;
 
                         case NOTIFICATION:
                             roles = String.format("%s,%s",
-                                    IdRepoEntitlement.NOTIFICATION_EXECUTE, IdRepoEntitlement.NOTIFICATION_UPDATE);
+                                IdRepoEntitlement.NOTIFICATION_EXECUTE, IdRepoEntitlement.NOTIFICATION_UPDATE);
                             break;
 
                         default:
@@ -371,7 +371,7 @@
 
             final JobTO jobTO = model.getObject();
 
-            panel.add(new ActionLink<JobTO>() {
+            panel.add(new ActionLink<>() {
 
                 private static final long serialVersionUID = -7978723352517770644L;
 
@@ -390,9 +390,9 @@
                             target.add(jobModal.setContent(rwb.build(BaseModal.CONTENT_ID, AjaxWizard.Mode.EDIT)));
 
                             jobModal.header(new StringResourceModel(
-                                    "any.edit",
-                                    AvailableJobsPanel.this,
-                                    new Model<>(reportTO)));
+                                "any.edit",
+                                AvailableJobsPanel.this,
+                                new Model<>(reportTO)));
 
                             jobModal.show(true);
                             break;
@@ -403,21 +403,21 @@
                                 schedTaskTO = TaskRestClient.readTask(TaskType.PULL, jobTO.getRefKey());
                             } catch (Exception e) {
                                 LOG.debug("Failed to read {} as {}, attempting {}",
-                                        jobTO.getRefKey(), TaskType.PULL, TaskType.PUSH, e);
+                                    jobTO.getRefKey(), TaskType.PULL, TaskType.PUSH, e);
                                 schedTaskTO = TaskRestClient.readTask(TaskType.PUSH, jobTO.getRefKey());
                             }
 
                             SchedTaskWizardBuilder<ProvisioningTaskTO> swb =
-                                    new SchedTaskWizardBuilder<>(schedTaskTO instanceof PullTaskTO
-                                            ? TaskType.PULL : TaskType.PUSH, schedTaskTO, pageRef);
+                                new SchedTaskWizardBuilder<>(schedTaskTO instanceof PullTaskTO
+                                    ? TaskType.PULL : TaskType.PUSH, schedTaskTO, pageRef);
                             swb.setEventSink(AvailableJobsPanel.this);
 
                             target.add(jobModal.setContent(swb.build(BaseModal.CONTENT_ID, AjaxWizard.Mode.EDIT)));
 
                             jobModal.header(new StringResourceModel(
-                                    "any.edit",
-                                    AvailableJobsPanel.this,
-                                    new Model<>(schedTaskTO)));
+                                "any.edit",
+                                AvailableJobsPanel.this,
+                                new Model<>(schedTaskTO)));
 
                             jobModal.show(true);
                             break;
@@ -433,7 +433,7 @@
                 }
             }, ActionType.EDIT, IdRepoEntitlement.TASK_UPDATE);
 
-            panel.add(new ActionLink<JobTO>() {
+            panel.add(new ActionLink<>() {
 
                 private static final long serialVersionUID = -7978723352517770644L;
 
@@ -451,14 +451,14 @@
                                 final ReportTO reportTO = ReportRestClient.read(jobTO.getRefKey());
 
                                 target.add(AvailableJobsPanel.this.reportModal.setContent(
-                                        new ReportletDirectoryPanel(reportModal, jobTO.getRefKey(), pageRef)));
+                                    new ReportletDirectoryPanel(reportModal, jobTO.getRefKey(), pageRef)));
 
                                 MetaDataRoleAuthorizationStrategy.authorize(
-                                        reportModal.getForm(),
-                                        ENABLE, IdRepoEntitlement.REPORT_UPDATE);
+                                    reportModal.getForm(),
+                                    ENABLE, IdRepoEntitlement.REPORT_UPDATE);
 
                                 reportModal.header(new StringResourceModel(
-                                        "reportlet.conf", AvailableJobsPanel.this, new Model<>(reportTO)));
+                                    "reportlet.conf", AvailableJobsPanel.this, new Model<>(reportTO)));
 
                                 reportModal.show(true);
 
@@ -476,12 +476,12 @@
                 @Override
                 protected boolean statusCondition(final JobTO modelObject) {
                     return !(null != jobTO.getType() && (JobType.TASK.equals(jobTO.getType())
-                            || JobType.NOTIFICATION.equals(jobTO.getType())));
+                        || JobType.NOTIFICATION.equals(jobTO.getType())));
                 }
 
             }, ActionType.COMPOSE, IdRepoEntitlement.TASK_UPDATE);
 
-            panel.add(new ActionLink<JobTO>() {
+            panel.add(new ActionLink<>() {
 
                 private static final long serialVersionUID = -3722207913631435501L;
 
@@ -518,8 +518,8 @@
                 @Override
                 protected boolean statusCondition(final JobTO modelObject) {
                     return (null != jobTO.getType()
-                            && !JobType.NOTIFICATION.equals(jobTO.getType())
-                            && (jobTO.isScheduled() && !jobTO.isRunning()));
+                        && !JobType.NOTIFICATION.equals(jobTO.getType())
+                        && (jobTO.isScheduled() && !jobTO.isRunning()));
                 }
             }, ActionLink.ActionType.DELETE, IdRepoEntitlement.TASK_DELETE, true);
 
@@ -627,7 +627,7 @@
         public ActionsPanel<ExecTO> getActions(final IModel<ExecTO> model) {
             final ActionsPanel<ExecTO> panel = super.getActions(model);
 
-            panel.add(new ActionLink<ExecTO>() {
+            panel.add(new ActionLink<>() {
 
                 private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/ProgressesPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/ProgressesPanel.java
index 923a653..4398be4 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/ProgressesPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/ProgressesPanel.java
@@ -35,7 +35,7 @@
 
         add(new Label("lastUpdate", SyncopeConsoleSession.get().getDateFormat().format(lastUpdate)));
 
-        ListView<ProgressBean> progresses = new ListView<ProgressBean>("progresses", progressBeans) {
+        ListView<ProgressBean> progresses = new ListView<>("progresses", progressBeans) {
 
             private static final long serialVersionUID = -9180479401817023838L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/ReconDetailsModalPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/ReconDetailsModalPanel.java
index 04ab3ec..6333b19 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/ReconDetailsModalPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/ReconDetailsModalPanel.java
@@ -113,30 +113,30 @@
             columns.add(new PropertyColumn<>(new ResourceModel(Constants.KEY_FIELD_NAME),
                     Constants.NAME_FIELD_NAME, Constants.NAME_FIELD_NAME));
 
-            columns.add(new AbstractColumn<Misaligned, String>(Model.of(Constants.SYNCOPE)) {
+            columns.add(new AbstractColumn<>(Model.of(Constants.SYNCOPE)) {
 
                 private static final long serialVersionUID = 2054811145491901166L;
 
                 @Override
                 public void populateItem(
-                        final Item<ICellPopulator<Misaligned>> cellItem,
-                        final String componentId,
-                        final IModel<Misaligned> rowModel) {
+                    final Item<ICellPopulator<Misaligned>> cellItem,
+                    final String componentId,
+                    final IModel<Misaligned> rowModel) {
 
                     cellItem.add(new Label(componentId, rowModel.getObject().getOnSyncope().toString()));
                     cellItem.add(new AttributeModifier("class", "code-deletion"));
                 }
             });
 
-            columns.add(new AbstractColumn<Misaligned, String>(Model.of(resource)) {
+            columns.add(new AbstractColumn<>(Model.of(resource)) {
 
                 private static final long serialVersionUID = 2054811145491901166L;
 
                 @Override
                 public void populateItem(
-                        final Item<ICellPopulator<Misaligned>> cellItem,
-                        final String componentId,
-                        final IModel<Misaligned> rowModel) {
+                    final Item<ICellPopulator<Misaligned>> cellItem,
+                    final String componentId,
+                    final IModel<Misaligned> rowModel) {
 
                     cellItem.add(new Label(componentId, rowModel.getObject().getOnResource().toString()));
                     cellItem.add(new AttributeModifier("class", "code-addition"));
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/ReconciliationWidget.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/ReconciliationWidget.java
index d50803b..4726792 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/ReconciliationWidget.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/ReconciliationWidget.java
@@ -167,7 +167,7 @@
         reportResult.setOutputMarkupId(true);
         container.add(reportResult);
 
-        IndicatorAjaxLink<Void> refresh = new IndicatorAjaxLink<Void>("refresh") {
+        IndicatorAjaxLink<Void> refresh = new IndicatorAjaxLink<>("refresh") {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
@@ -355,18 +355,18 @@
         protected List<IColumn<Any, String>> getColumns() {
             List<IColumn<Any, String>> columns = new ArrayList<>();
 
-            columns.add(new AbstractColumn<Any, String>(new ResourceModel("reference"), Constants.KEY_FIELD_NAME) {
+            columns.add(new AbstractColumn<>(new ResourceModel("reference"), Constants.KEY_FIELD_NAME) {
 
                 private static final long serialVersionUID = -1822504503325964706L;
 
                 @Override
                 public void populateItem(
-                        final Item<ICellPopulator<Any>> cellItem,
-                        final String componentId,
-                        final IModel<Any> rowModel) {
+                    final Item<ICellPopulator<Any>> cellItem,
+                    final String componentId,
+                    final IModel<Any> rowModel) {
 
                     cellItem.add(new Label(componentId,
-                            rowModel.getObject().getKey()
+                        rowModel.getObject().getKey()
                             + (StringUtils.isBlank(rowModel.getObject().getName())
                             ? StringUtils.EMPTY
                             : ' ' + rowModel.getObject().getName())));
@@ -381,43 +381,43 @@
                         map(Misaligned::getResource).collect(Collectors.toList()));
             });
             for (final String resource : resources) {
-                columns.add(new AbstractColumn<Any, String>(Model.of(resource)) {
+                columns.add(new AbstractColumn<>(Model.of(resource)) {
 
                     private static final long serialVersionUID = -1822504503325964706L;
 
                     @Override
                     public void populateItem(
-                            final Item<ICellPopulator<Any>> cellItem,
-                            final String componentId,
-                            final IModel<Any> rowModel) {
+                        final Item<ICellPopulator<Any>> cellItem,
+                        final String componentId,
+                        final IModel<Any> rowModel) {
 
                         Any any = rowModel.getObject();
 
                         Optional<Missing> missing = any.getMissing().stream().
-                                filter(object -> resource.equals(object.getResource())).findFirst();
+                            filter(object -> resource.equals(object.getResource())).findFirst();
                         List<Misaligned> misaligned = any.getMisaligned().stream().
-                                filter(object -> resource.equals(object.getResource())).collect(Collectors.toList());
+                            filter(object -> resource.equals(object.getResource())).collect(Collectors.toList());
 
                         Component content;
                         if (missing.isEmpty()) {
                             if (misaligned.isEmpty()) {
                                 content = new Label(componentId, StringUtils.EMPTY);
                             } else {
-                                Action<Any> action = new Action<>(new ActionLink<Any>() {
+                                Action<Any> action = new Action<>(new ActionLink<>() {
 
                                     private static final long serialVersionUID = -3722207913631435501L;
 
                                     @Override
                                     public void onClick(final AjaxRequestTarget target, final Any ignore) {
                                         modal.header(Model.of(
-                                                rowModel.getObject().getType()
+                                            rowModel.getObject().getType()
                                                 + ' ' + rowModel.getObject().getKey()
                                                 + ' ' + rowModel.getObject().getName()));
                                         modal.setContent(new ReconDetailsModalPanel(
-                                                modal,
-                                                resource,
-                                                misaligned,
-                                                ReconciliationWidget.this.pageRef));
+                                            modal,
+                                            resource,
+                                            misaligned,
+                                            ReconciliationWidget.this.pageRef));
                                         modal.show(true);
                                         target.add(modal);
                                     }
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/DelegationWizardBuilder.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/DelegationWizardBuilder.java
index 9148f64..2e01051 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/DelegationWizardBuilder.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/DelegationWizardBuilder.java
@@ -172,23 +172,23 @@
                     setAllowOrder(true).
                     build("roles",
                             new PropertyModel<>(modelObject, "roles"),
-                            new AjaxPalettePanel.Builder.Query<String>() {
+                        new AjaxPalettePanel.Builder.Query<>() {
 
-                        private static final long serialVersionUID = 3900199363626636719L;
+                            private static final long serialVersionUID = 3900199363626636719L;
 
-                        @Override
-                        public List<String> execute(final String filter) {
-                            if (StringUtils.isEmpty(filter) || "*".equals(filter)) {
-                                return allRoles.size() > Constants.MAX_ROLE_LIST_SIZE
+                            @Override
+                            public List<String> execute(final String filter) {
+                                if (StringUtils.isEmpty(filter) || "*".equals(filter)) {
+                                    return allRoles.size() > Constants.MAX_ROLE_LIST_SIZE
                                         ? allRoles.subList(0, Constants.MAX_ROLE_LIST_SIZE)
                                         : allRoles;
 
-                            }
-                            return allRoles.stream().
+                                }
+                                return allRoles.stream().
                                     filter(role -> StringUtils.containsIgnoreCase(role, filter)).
                                     collect(Collectors.toList());
-                        }
-                    }).
+                            }
+                        }).
                     hideLabel().
                     setOutputMarkupId(true));
         }
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java
index d888ab8..63baab4 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/WizardMgtPanel.java
@@ -86,7 +86,7 @@
 
     private final List<Component> outerObjects = new ArrayList<>();
 
-    protected final BaseModal<T> modal = new BaseModal<T>(Constants.OUTER) {
+    protected final BaseModal<T> modal = new BaseModal<>(Constants.OUTER) {
 
         private static final long serialVersionUID = 389935548143327858L;
 
@@ -151,7 +151,7 @@
         utilityIcon = new Label("utilityIcon");
         utilityAjaxLink.add(utilityIcon);
 
-        add(new ListView<Component>("outerObjectsRepeater", outerObjects) {
+        add(new ListView<>("outerObjectsRepeater", outerObjects) {
 
             private static final long serialVersionUID = -9180479401817023838L;
 
@@ -238,9 +238,9 @@
                 }
 
                 if (wizardInModal && showResultPage) {
-                    modal.setContent(new ResultPage<T>(
-                            item,
-                            AjaxWizard.NewItemFinishEvent.class.cast(newItemEvent).getResult()) {
+                    modal.setContent(new ResultPage<>(
+                        item,
+                        AjaxWizard.NewItemFinishEvent.class.cast(newItemEvent).getResult()) {
 
                         private static final long serialVersionUID = -2630573849050255233L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/ConnObjectPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/ConnObjectPanel.java
index 417e8c5..64ef8e5 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/ConnObjectPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/ConnObjectPanel.java
@@ -58,21 +58,21 @@
 
         super(id);
 
-        final IModel<List<String>> formProps = new LoadableDetachableModel<List<String>>() {
+        final IModel<List<String>> formProps = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
             @Override
             protected List<String> load() {
                 List<Attr> right = new ArrayList<>(connObjectTOs == null || connObjectTOs.getRight() == null
-                        ? List.of()
-                        : connObjectTOs.getRight().getAttrs());
+                    ? List.of()
+                    : connObjectTOs.getRight().getAttrs());
                 List<Attr> left = new ArrayList<>(connObjectTOs == null || connObjectTOs.getLeft() == null
-                        ? List.of()
-                        : connObjectTOs.getLeft().getAttrs());
+                    ? List.of()
+                    : connObjectTOs.getLeft().getAttrs());
 
                 List<String> schemas = ListUtils.sum(right.stream().map(Attr::getSchema).collect(Collectors.toList()),
-                        left.stream().map(Attr::getSchema).collect(Collectors.toList()));
+                    left.stream().map(Attr::getSchema).collect(Collectors.toList()));
                 Collections.sort(schemas);
                 return schemas;
             }
@@ -87,7 +87,7 @@
         final Map<String, Attr> rightProfile = connObjectTOs == null || connObjectTOs.getRight() == null
                 ? null
                 : EntityTOUtils.buildAttrMap(connObjectTOs.getRight().getAttrs());
-        ListView<String> propView = new ListView<String>("propView", formProps) {
+        ListView<String> propView = new ListView<>("propView", formProps) {
 
             private static final long serialVersionUID = 3109256773218160485L;
 
@@ -103,20 +103,20 @@
 
                 valueFragment = new Fragment("value", "doubleValue", ConnObjectPanel.this);
                 valueFragment.add(getValuePanel("leftAttribute", prop, left).
-                        setOutputMarkupPlaceholderTag(true).setVisible(!hideLeft));
+                    setOutputMarkupPlaceholderTag(true).setVisible(!hideLeft));
                 valueFragment.add(getValuePanel("rightAttribute", prop, right));
 
                 if (left == null || right == null
-                        || (CollectionUtils.isNotEmpty(right.getValues())
-                        && CollectionUtils.isEmpty(left.getValues()))
-                        || (CollectionUtils.isEmpty(right.getValues())
-                        && CollectionUtils.isNotEmpty(left.getValues()))
-                        || (CollectionUtils.isNotEmpty(right.getValues())
-                        && CollectionUtils.isNotEmpty(left.getValues())
-                        && right.getValues().size() != left.getValues().size())
-                        || (CollectionUtils.isNotEmpty(right.getValues())
-                        && CollectionUtils.isNotEmpty(left.getValues())
-                        && !right.getValues().equals(left.getValues()))) {
+                    || (CollectionUtils.isNotEmpty(right.getValues())
+                    && CollectionUtils.isEmpty(left.getValues()))
+                    || (CollectionUtils.isEmpty(right.getValues())
+                    && CollectionUtils.isNotEmpty(left.getValues()))
+                    || (CollectionUtils.isNotEmpty(right.getValues())
+                    && CollectionUtils.isNotEmpty(left.getValues())
+                    && right.getValues().size() != left.getValues().size())
+                    || (CollectionUtils.isNotEmpty(right.getValues())
+                    && CollectionUtils.isNotEmpty(left.getValues())
+                    && !right.getValues().equals(left.getValues()))) {
 
                     valueFragment.add(new Behavior() {
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/DerAttrs.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/DerAttrs.java
index 40c4487..bb3082c 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/DerAttrs.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/DerAttrs.java
@@ -71,7 +71,7 @@
             }
         }), Model.of(0)).setOutputMarkupId(true));
 
-        add(new ListView<MembershipTO>("membershipsDerSchemas", memberships) {
+        add(new ListView<>("membershipsDerSchemas", memberships) {
 
             private static final long serialVersionUID = 6741044372185745296L;
 
@@ -79,19 +79,19 @@
             protected void populateItem(final ListItem<MembershipTO> item) {
                 final MembershipTO membershipTO = item.getModelObject();
                 item.add(new Accordion("membershipDerSchemas", List.of(new AbstractTab(
-                        new StringResourceModel(
-                                "attributes.membership.accordion",
-                                DerAttrs.this,
-                                Model.of(membershipTO))) {
+                    new StringResourceModel(
+                        "attributes.membership.accordion",
+                        DerAttrs.this,
+                        Model.of(membershipTO))) {
 
                     private static final long serialVersionUID = 1037272333056449378L;
 
                     @Override
                     public WebMarkupContainer getPanel(final String panelId) {
                         return new DerAttrs.DerSchemas(
-                                panelId,
-                                membershipSchemas.get(membershipTO.getGroupKey()),
-                                new ListModel<>(getAttrsFromTO(membershipTO)));
+                            panelId,
+                            membershipSchemas.get(membershipTO.getGroupKey()),
+                            new ListModel<>(getAttrsFromTO(membershipTO)));
                     }
                 }), Model.of(-1)).setOutputMarkupId(true));
             }
@@ -170,7 +170,7 @@
 
             super(id);
 
-            add(new ListView<Attr>("schemas", attrTOs) {
+            add(new ListView<>("schemas", attrTOs) {
 
                 private static final long serialVersionUID = 9101744072914090143L;
 
@@ -193,10 +193,10 @@
                     }
 
                     AjaxTextFieldPanel panel = new AjaxTextFieldPanel(
-                            "panel",
-                            schemas.get(attrTO.getSchema()).getLabel(SyncopeConsoleSession.get().getLocale()),
-                            model,
-                            false);
+                        "panel",
+                        schemas.get(attrTO.getSchema()).getLabel(SyncopeConsoleSession.get().getLocale()),
+                        model,
+                        false);
                     panel.setEnabled(false);
                     panel.setRequired(true);
                     panel.setOutputMarkupId(true);
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java
index 45b2bbe..993be5a 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java
@@ -88,7 +88,7 @@
                             : RealmRestClient.list()).
                             stream().filter(realm -> authRealms.stream().anyMatch(
                             authRealm -> realm.getFullPath().startsWith(authRealm))).
-                            map(item -> item.getFullPath()).collect(Collectors.toList()).iterator();
+                            map(RealmTO::getFullPath).collect(Collectors.toList()).iterator();
                 }
             };
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/DynamicMemberships.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/DynamicMemberships.java
index ec0f11e..d60116b 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/DynamicMemberships.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/DynamicMemberships.java
@@ -46,15 +46,15 @@
     public DynamicMemberships(final GroupWrapper groupWrapper) {
         super();
 
-        final LoadableDetachableModel<List<AnyTypeTO>> types = new LoadableDetachableModel<List<AnyTypeTO>>() {
+        final LoadableDetachableModel<List<AnyTypeTO>> types = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
             @Override
             protected List<AnyTypeTO> load() {
                 return AnyTypeRestClient.listAnyTypes().stream().
-                        filter(type -> AnyTypeKind.USER != type.getKind() && AnyTypeKind.GROUP != type.getKind()).
-                        collect(Collectors.toList());
+                    filter(type -> AnyTypeKind.USER != type.getKind() && AnyTypeKind.GROUP != type.getKind()).
+                    collect(Collectors.toList());
             }
         };
 
@@ -77,7 +77,7 @@
         // ------------------------
         // aDynMembershipConds
         // ------------------------
-        add(new ListView<AnyTypeTO>("aDynMembershipCond", types) {
+        add(new ListView<>("aDynMembershipCond", types) {
 
             private static final long serialVersionUID = 9101744072914090143L;
 
@@ -85,19 +85,19 @@
             protected void populateItem(final ListItem<AnyTypeTO> item) {
                 final String key = item.getModelObject().getKey();
                 item.add(new Accordion("aDynMembershipCond", List.of(
-                        new AbstractTab(new StringResourceModel(
-                                "aDynMembershipCond", this, new Model<AnyTypeTO>(item.getModelObject()))) {
+                    new AbstractTab(new StringResourceModel(
+                        "aDynMembershipCond", this, new Model<>(item.getModelObject()))) {
 
-                    private static final long serialVersionUID = 1037272333056449378L;
+                        private static final long serialVersionUID = 1037272333056449378L;
 
-                    @Override
-                    public Panel getPanel(final String panelId) {
-                        return new AnyObjectSearchPanel.Builder(
+                        @Override
+                        public Panel getPanel(final String panelId) {
+                            return new AnyObjectSearchPanel.Builder(
                                 key, new MapOfListModel<>(groupWrapper, "aDynClauses", key)).
                                 required(false).build(panelId);
-                    }
-                }), Model.of(StringUtils.isBlank(groupWrapper.getADynMembershipConds().get(key)) ? -1 : 0)).
-                        setOutputMarkupId(true));
+                        }
+                    }), Model.of(StringUtils.isBlank(groupWrapper.getADynMembershipConds().get(key)) ? -1 : 0)).
+                    setOutputMarkupId(true));
             }
         });
         // ------------------------
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
index 71a1dd8..e1a0c29 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/Groups.java
@@ -107,7 +107,7 @@
             dyngroupsContainer.setVisible(false);
         } else {
             AjaxPalettePanel.Builder<MembershipTO> builder = new AjaxPalettePanel.Builder<MembershipTO>().
-                    setRenderer(new IChoiceRenderer<MembershipTO>() {
+                    setRenderer(new IChoiceRenderer<>() {
 
                         private static final long serialVersionUID = -3086661086073628855L;
 
@@ -123,52 +123,53 @@
 
                         @Override
                         public MembershipTO getObject(
-                                final String id, final IModel<? extends List<? extends MembershipTO>> choices) {
+                            final String id, final IModel<? extends List<? extends MembershipTO>> choices) {
 
                             return choices.getObject().stream().
-                                    filter(object -> id.equalsIgnoreCase(object.getGroupName())).findAny().orElse(null);
+                                filter(object -> id.equalsIgnoreCase(object.getGroupName())).findAny().orElse(null);
                         }
                     });
 
             groupsContainer.add(builder.setAllowOrder(true).withFilter("*").build("groups",
-                    new ListModel<MembershipTO>() {
+                new ListModel<>() {
 
-                private static final long serialVersionUID = -2583290457773357445L;
+                    private static final long serialVersionUID = -2583290457773357445L;
 
-                @Override
-                public List<MembershipTO> getObject() {
-                    return Groups.this.groupsModel.getMemberships();
-                }
+                    @Override
+                    public List<MembershipTO> getObject() {
+                        return Groups.this.groupsModel.getMemberships();
+                    }
 
-            }, new AjaxPalettePanel.Builder.Query<MembershipTO>() {
+                }, new AjaxPalettePanel.Builder.Query<>() {
 
-                private static final long serialVersionUID = -7223078772249308813L;
+                    private static final long serialVersionUID = -7223078772249308813L;
 
-                @Override
-                public List<MembershipTO> execute(final String filter) {
-                    return StringUtils.isEmpty(filter)
+                    @Override
+                    public List<MembershipTO> execute(final String filter) {
+                        return StringUtils.isEmpty(filter)
                             ? List.of()
                             : ("*".equals(filter)
-                                    ? groupsModel.getObject()
-                                    : SyncopeRestClient.searchAssignableGroups(
-                                            anyTO.getRealm(), filter, 1, Constants.MAX_GROUP_LIST_SIZE)).stream().
-                                    map(group -> new MembershipTO.Builder(group.getKey()).
-                                    groupName(group.getName()).build()).
-                                    collect(Collectors.toList());
-                }
-            }).hideLabel().setOutputMarkupId(true));
+                            ? groupsModel.getObject()
+                            : SyncopeRestClient.searchAssignableGroups(
+                            anyTO.getRealm(), filter, 1, Constants.MAX_GROUP_LIST_SIZE)).stream().
+                            map(group -> new MembershipTO.Builder(group.getKey()).
+                                groupName(group.getName()).build()).
+                            collect(Collectors.toList());
+                    }
+                }).hideLabel().setOutputMarkupId(true));
 
             dyngroupsContainer.add(new AjaxPalettePanel.Builder<String>().setAllowOrder(true).build("dyngroups",
-                    new ListModel<String>() {
+                new ListModel<>() {
 
-                private static final long serialVersionUID = -2583290457773357445L;
+                    private static final long serialVersionUID = -2583290457773357445L;
 
-                @Override
-                public List<String> getObject() {
-                    return Groups.this.groupsModel.getDynMemberships();
-                }
+                    @Override
+                    public List<String> getObject() {
+                        return Groups.this.groupsModel.getDynMemberships();
+                    }
 
-            }, new ListModel<>(groupsModel.getObject().stream().map(GroupTO::getName).collect(Collectors.toList()))).
+                }, new ListModel<>(groupsModel.getObject().stream().
+                        map(GroupTO::getName).collect(Collectors.toList()))).
                     hideLabel().setEnabled(false).setOutputMarkupId(true));
         }
     }
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/Ownership.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/Ownership.java
index 8de168d..b7fc8ce 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/Ownership.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/Ownership.java
@@ -114,7 +114,7 @@
                 withOffStyle(BootstrapToggleConfig.Style.warning).
                 withSize(BootstrapToggleConfig.Size.mini);
 
-        add(new BootstrapToggle("ownership", new Model<Boolean>() {
+        add(new BootstrapToggle("ownership", new Model<>() {
 
             private static final long serialVersionUID = 6062041315055645807L;
 
@@ -201,7 +201,7 @@
         }
 
         final AjaxTextFieldPanel userOwner = new AjaxTextFieldPanel(
-                "userOwner", "userOwner", new PropertyModel<String>(groupWrapper.getInnerObject(), "userOwner") {
+                "userOwner", "userOwner", new PropertyModel<>(groupWrapper.getInnerObject(), "userOwner") {
 
             private static final long serialVersionUID = -3743432456095828573L;
 
@@ -236,7 +236,7 @@
         userOwner.setReadOnly(true).setOutputMarkupId(true);
         userSearchFragment.add(userOwner);
 
-        final IndicatingAjaxLink<Void> userOwnerReset = new IndicatingAjaxLink<Void>("userOwnerReset") {
+        final IndicatingAjaxLink<Void> userOwnerReset = new IndicatingAjaxLink<>("userOwnerReset") {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
@@ -254,7 +254,7 @@
         userSearchFragment.add(userOwnerReset);
 
         final AjaxTextFieldPanel groupOwner = new AjaxTextFieldPanel(
-                "groupOwner", "groupOwner", new PropertyModel<String>(groupWrapper.getInnerObject(), "groupOwner") {
+                "groupOwner", "groupOwner", new PropertyModel<>(groupWrapper.getInnerObject(), "groupOwner") {
 
             private static final long serialVersionUID = -3743432456095828573L;
 
@@ -289,7 +289,7 @@
         groupOwner.setReadOnly(true).setOutputMarkupId(true);
         groupSearchFragment.add(groupOwner);
 
-        final IndicatingAjaxLink<Void> groupOwnerReset = new IndicatingAjaxLink<Void>("groupOwnerReset") {
+        final IndicatingAjaxLink<Void> groupOwnerReset = new IndicatingAjaxLink<>("groupOwnerReset") {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/PlainAttrs.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/PlainAttrs.java
index 825cd24..8c3624b 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/PlainAttrs.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/PlainAttrs.java
@@ -88,7 +88,7 @@
             }
         }), Model.of(0)).setOutputMarkupId(true));
 
-        add(new ListView<MembershipTO>("membershipsPlainSchemas", memberships) {
+        add(new ListView<>("membershipsPlainSchemas", memberships) {
 
             private static final long serialVersionUID = 6741044372185745296L;
 
@@ -96,27 +96,27 @@
             protected void populateItem(final ListItem<MembershipTO> item) {
                 final MembershipTO membershipTO = item.getModelObject();
                 item.add(new Accordion("membershipPlainSchemas", List.of(new AbstractTab(
-                        new StringResourceModel(
-                                "attributes.membership.accordion",
-                                PlainAttrs.this,
-                                Model.of(membershipTO))) {
+                    new StringResourceModel(
+                        "attributes.membership.accordion",
+                        PlainAttrs.this,
+                        Model.of(membershipTO))) {
 
                     private static final long serialVersionUID = 1037272333056449378L;
 
                     @Override
                     public WebMarkupContainer getPanel(final String panelId) {
                         return new PlainSchemasMemberships(
-                                panelId,
-                                membershipSchemas.get(membershipTO.getGroupKey()),
-                                new LoadableDetachableModel<Attributable>() { // SYNCOPE-1439
+                            panelId,
+                            membershipSchemas.get(membershipTO.getGroupKey()),
+                            new LoadableDetachableModel<>() { // SYNCOPE-1439
 
-                            private static final long serialVersionUID = 526768546610546553L;
+                                private static final long serialVersionUID = 526768546610546553L;
 
-                            @Override
-                            protected Attributable load() {
-                                return membershipTO;
-                            }
-                        });
+                                @Override
+                                protected Attributable load() {
+                                    return membershipTO;
+                                }
+                            });
                     }
                 }), Model.of(-1)).setOutputMarkupId(true));
             }
@@ -196,7 +196,7 @@
 
             super(id);
 
-            add(new ListView<Attr>("schemas", attrTOs) {
+            add(new ListView<>("schemas", attrTOs) {
 
                 private static final long serialVersionUID = 9101744072914090143L;
 
@@ -220,8 +220,8 @@
 
             super(id);
 
-            add(new ListView<Attr>("schemas", new ListModel<Attr>(attributableTO.getObject().
-                    getPlainAttrs().stream().sorted(attrComparator).collect(Collectors.toList()))) {
+            add(new ListView<>("schemas", new ListModel<>(attributableTO.getObject().
+                getPlainAttrs().stream().sorted(attrComparator).collect(Collectors.toList()))) {
 
                 private static final long serialVersionUID = 5306618783986001008L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java
index 2b3af3a..1813cc7 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java
@@ -132,7 +132,7 @@
                 return new ListViewPanel.Builder<>(RelationshipTO.class, pageRef).
                         setItems(relationships.get(relationship)).
                         includes("otherEndType", "otherEndKey", "otherEndName").
-                        addAction(new ActionLink<RelationshipTO>() {
+                        addAction(new ActionLink<>() {
 
                             private static final long serialVersionUID = -6847033126124401556L;
 
@@ -161,7 +161,7 @@
         final ActionsPanel<RelationshipTO> panel = new ActionsPanel<>("actions", null);
         viewFragment.add(panel);
 
-        panel.add(new ActionLink<RelationshipTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = 3257738274365467945L;
 
@@ -251,7 +251,7 @@
                     && anyType.getKind() != AnyTypeKind.USER).collect(Collectors.toList());
 
             final AjaxDropDownChoicePanel<AnyTypeTO> otherType = new AjaxDropDownChoicePanel<>(
-                    "otherType", "otherType", new PropertyModel<AnyTypeTO>(rel, "otherType") {
+                    "otherType", "otherType", new PropertyModel<>(rel, "otherType") {
 
                 private static final long serialVersionUID = -5861057041758169508L;
 
@@ -271,7 +271,7 @@
                 }
             }, false);
             otherType.setChoices(availableTypes);
-            otherType.setChoiceRenderer(new IChoiceRenderer<AnyTypeTO>() {
+            otherType.setChoiceRenderer(new IChoiceRenderer<>() {
 
                 private static final long serialVersionUID = -734743540442190178L;
 
@@ -288,7 +288,7 @@
                 @Override
                 public AnyTypeTO getObject(final String id, final IModel<? extends List<? extends AnyTypeTO>> choices) {
                     return choices.getObject().stream().
-                            filter(anyTypeTO -> id.equals(anyTypeTO.getKey())).findAny().orElse(null);
+                        filter(anyTypeTO -> id.equals(anyTypeTO.getKey())).findAny().orElse(null);
                 }
             });
             // enable "otherType" dropdown only if "type" option is selected - SYNCOPE-1140
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/ResultPage.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/ResultPage.java
index 149b035..bee5573 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/ResultPage.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/ResultPage.java
@@ -45,7 +45,7 @@
         add(customResultBody("customResultBody", item, result));
 
         ActionsPanel<T> panel = new ActionsPanel<>(Constants.ACTION, null);
-        panel.add(new ActionLink<T>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = 3257738274365467945L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/Roles.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/Roles.java
index d6c3edf..2ea6946 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/Roles.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/Roles.java
@@ -101,23 +101,23 @@
                 setAllowOrder(true).
                 build("roles",
                         new PropertyModel<>(modelObject.getInnerObject(), "roles"),
-                        new AjaxPalettePanel.Builder.Query<String>() {
+                    new AjaxPalettePanel.Builder.Query<>() {
 
-                    private static final long serialVersionUID = 3900199363626636719L;
+                        private static final long serialVersionUID = 3900199363626636719L;
 
-                    @Override
-                    public List<String> execute(final String filter) {
-                        if (StringUtils.isEmpty(filter) || "*".equals(filter)) {
-                            return allRoles.size() > Constants.MAX_ROLE_LIST_SIZE
+                        @Override
+                        public List<String> execute(final String filter) {
+                            if (StringUtils.isEmpty(filter) || "*".equals(filter)) {
+                                return allRoles.size() > Constants.MAX_ROLE_LIST_SIZE
                                     ? allRoles.subList(0, Constants.MAX_ROLE_LIST_SIZE)
                                     : allRoles;
 
-                        }
-                        return allRoles.stream().
+                            }
+                            return allRoles.stream().
                                 filter(role -> StringUtils.containsIgnoreCase(role, filter)).
                                 collect(Collectors.toList());
-                    }
-                }).
+                        }
+                    }).
                 hideLabel().
                 setOutputMarkupId(true);
     }
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/StatusPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/StatusPanel.java
index 481eaa9..641309d 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/StatusPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/StatusPanel.java
@@ -133,7 +133,7 @@
         final MultilevelPanel mlp = new MultilevelPanel("resources");
         add(mlp);
 
-        ListViewPanel.Builder<StatusBean> builder = new ListViewPanel.Builder<StatusBean>(StatusBean.class, pageRef) {
+        ListViewPanel.Builder<StatusBean> builder = new ListViewPanel.Builder<>(StatusBean.class, pageRef) {
 
             private static final long serialVersionUID = -6809736686861678498L;
 
@@ -152,14 +152,14 @@
         builder.withChecks(ListViewPanel.CheckAvailability.NONE);
         builder.setReuseItem(false);
 
-        ActionLink<StatusBean> connObjectLink = new ActionLink<StatusBean>() {
+        ActionLink<StatusBean> connObjectLink = new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
             @Override
             protected boolean statusCondition(final StatusBean bean) {
                 Pair<ConnObjectTO, ConnObjectTO> pair =
-                        getConnObjectTOs(bean.getKey(), bean.getResource(), connObjects);
+                    getConnObjectTOs(bean.getKey(), bean.getResource(), connObjects);
                 return pair != null && pair.getRight() != null;
             }
 
@@ -173,7 +173,7 @@
         }
         SyncopeWebApplication.get().getStatusProvider().addConnObjectLink(builder, connObjectLink);
 
-        builder.addAction(new ActionLink<StatusBean>() {
+        builder.addAction(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/VirAttrs.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/VirAttrs.java
index 2c81950..055703e 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/VirAttrs.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/VirAttrs.java
@@ -79,7 +79,7 @@
             }
         }), Model.of(0)).setOutputMarkupId(true));
 
-        add(new ListView<MembershipTO>("membershipsVirSchemas", memberships) {
+        add(new ListView<>("membershipsVirSchemas", memberships) {
 
             private static final long serialVersionUID = 9101744072914090143L;
 
@@ -87,16 +87,16 @@
             protected void populateItem(final ListItem<MembershipTO> item) {
                 MembershipTO membTO = item.getModelObject();
                 item.add(new Accordion("membershipVirSchemas", List.of(new AbstractTab(
-                        new StringResourceModel("attributes.membership.accordion", VirAttrs.this, Model.of(membTO))) {
+                    new StringResourceModel("attributes.membership.accordion", VirAttrs.this, Model.of(membTO))) {
 
                     private static final long serialVersionUID = 1037272333056449378L;
 
                     @Override
                     public WebMarkupContainer getPanel(final String panelId) {
                         return new VirAttrs.VirSchemas(
-                                panelId,
-                                membershipSchemas.get(membTO.getGroupKey()),
-                                new ListModel<>(getAttrsFromTO(membTO)));
+                            panelId,
+                            membershipSchemas.get(membTO.getGroupKey()),
+                            new ListModel<>(getAttrsFromTO(membTO)));
                     }
                 }), Model.of(-1)).setOutputMarkupId(true));
             }
@@ -176,7 +176,7 @@
                 final IModel<List<Attr>> attrTOs) {
             super(id);
 
-            add(new ListView<Attr>("schemas", attrTOs) {
+            add(new ListView<>("schemas", attrTOs) {
 
                 private static final long serialVersionUID = 9101744072914090143L;
 
@@ -187,27 +187,27 @@
                     VirSchemaTO virSchemaTO = schemas.get(attrTO.getSchema());
 
                     AbstractFieldPanel<?> panel = new AjaxTextFieldPanel(
-                            "panel",
-                            virSchemaTO.getLabel(SyncopeConsoleSession.get().getLocale()),
-                            new Model<>(),
-                            false);
+                        "panel",
+                        virSchemaTO.getLabel(SyncopeConsoleSession.get().getLocale()),
+                        new Model<>(),
+                        false);
 
                     if (mode == AjaxWizard.Mode.TEMPLATE) {
                         AjaxTextFieldPanel.class.cast(panel).enableJexlHelp().setEnabled(!virSchemaTO.isReadonly());
                     } else {
                         panel = new MultiFieldPanel.Builder<>(
-                                new PropertyModel<List<String>>(attrTO, "values")).build(
-                                "panel",
-                                virSchemaTO.getLabel(SyncopeConsoleSession.get().getLocale()),
-                                AjaxTextFieldPanel.class.cast(panel));
+                            new PropertyModel<List<String>>(attrTO, "values")).build(
+                            "panel",
+                            virSchemaTO.getLabel(SyncopeConsoleSession.get().getLocale()),
+                            AjaxTextFieldPanel.class.cast(panel));
                         panel.setEnabled(!virSchemaTO.isReadonly());
                     }
 
                     item.add(panel);
 
                     if (!attrTO.getValues().isEmpty()
-                            && VirAttrs.this.modelObject instanceof UserWrapper
-                            && UserWrapper.class.cast(VirAttrs.this.modelObject).getPreviousUserTO() != null) {
+                        && VirAttrs.this.modelObject instanceof UserWrapper
+                        && UserWrapper.class.cast(VirAttrs.this.modelObject).getPreviousUserTO() != null) {
 
                         panel.showExternAction(new LabelInfo("externalAction", StringUtils.EMPTY));
                     }
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/mapping/AbstractMappingPanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/mapping/AbstractMappingPanel.java
index f7295d8..3543984 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/mapping/AbstractMappingPanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/mapping/AbstractMappingPanel.java
@@ -176,7 +176,7 @@
             return compared;
         });
 
-        mappings = new ListView<ItemTO>("mappings", model) {
+        mappings = new ListView<>("mappings", model) {
 
             private static final long serialVersionUID = 4949588177564901031L;
 
@@ -191,10 +191,10 @@
                 // Internal attribute
                 // -------------------------------
                 AjaxTextFieldPanel intAttrName = new AjaxTextFieldPanel(
-                        "intAttrName",
-                        "intAttrName",
-                        new PropertyModel<>(itemTO, "intAttrName"),
-                        false);
+                    "intAttrName",
+                    "intAttrName",
+                    new PropertyModel<>(itemTO, "intAttrName"),
+                    false);
                 intAttrName.setChoices(List.of());
                 intAttrName.setRequired(true).hideLabel();
                 item.add(intAttrName);
@@ -204,9 +204,9 @@
                 // External attribute
                 // -------------------------------
                 AjaxTextFieldPanel extAttrName = new AjaxTextFieldPanel(
-                        "extAttrName",
-                        "extAttrName",
-                        new PropertyModel<>(itemTO, "extAttrName"));
+                    "extAttrName",
+                    "extAttrName",
+                    new PropertyModel<>(itemTO, "extAttrName"));
                 extAttrName.setChoices(getExtAttrNames().getObject());
 
                 boolean required = !itemTO.isPassword();
@@ -222,7 +222,7 @@
                     item.add(new Label("jexlTransformers").setVisible(false));
                 } else {
                     item.add(new JEXLTransformerWidget(
-                            "jexlTransformers", itemTO, jexlTransformers).setRenderBodyOnly(true));
+                        "jexlTransformers", itemTO, jexlTransformers).setRenderBodyOnly(true));
                 }
                 // -------------------------------
 
@@ -234,7 +234,7 @@
 
                 } else {
                     item.add(new ItemTransformerWidget(
-                            "itemTransformers", itemTO, itemTransformers).setRenderBodyOnly(true));
+                        "itemTransformers", itemTO, itemTransformers).setRenderBodyOnly(true));
                 }
                 // -------------------------------
 
@@ -242,9 +242,9 @@
                 // Mandatory
                 // -------------------------------
                 AjaxTextFieldPanel mandatory = new AjaxTextFieldPanel(
-                        "mandatoryCondition",
-                        "mandatoryCondition",
-                        new PropertyModel<>(itemTO, "mandatoryCondition"));
+                    "mandatoryCondition",
+                    "mandatoryCondition",
+                    new PropertyModel<>(itemTO, "mandatoryCondition"));
                 mandatory.hideLabel();
                 mandatory.setChoices(List.of("true", "false"));
                 mandatory.setEnabled(!itemTO.isConnObjectKey());
@@ -255,9 +255,9 @@
                 // Connector object key
                 // -------------------------------
                 AjaxCheckBoxPanel connObjectKey = new AjaxCheckBoxPanel(
-                        "connObjectKey",
-                        "connObjectKey",
-                        new PropertyModel<>(itemTO, "connObjectKey"), false);
+                    "connObjectKey",
+                    "connObjectKey",
+                    new PropertyModel<>(itemTO, "connObjectKey"), false);
                 connObjectKey.hideLabel();
                 item.add(connObjectKey);
                 // -------------------------------
@@ -266,9 +266,9 @@
                 // Password
                 // -------------------------------
                 AjaxCheckBoxPanel password = new AjaxCheckBoxPanel(
-                        "password",
-                        "password",
-                        new PropertyModel<>(itemTO, "password"), false);
+                    "password",
+                    "password",
+                    new PropertyModel<>(itemTO, "password"), false);
                 item.add(password.hideLabel());
                 // -------------------------------
 
@@ -279,7 +279,7 @@
                 purpose.setOutputMarkupId(true);
 
                 MappingPurposePanel purposeActions = new MappingPurposePanel(
-                        "purposeActions", new PropertyModel<>(itemTO, "purpose"), purpose);
+                    "purposeActions", new PropertyModel<>(itemTO, "purpose"), purpose);
                 purpose.add(purposeActions.setRenderBodyOnly(true));
                 item.add(purpose);
                 // -------------------------------
@@ -288,7 +288,7 @@
                 // Remove
                 // -------------------------------
                 ActionsPanel<Serializable> actions = new ActionsPanel<>("toRemove", null);
-                actions.add(new ActionLink<Serializable>() {
+                actions.add(new ActionLink<>() {
 
                     private static final long serialVersionUID = -3722207913631435501L;
 
@@ -339,7 +339,7 @@
                     protected void onUpdate(final AjaxRequestTarget target) {
                         extAttrName.setEnabled(!password.getModelObject());
                         extAttrName.setModelObject(password.getModelObject()
-                                ? ConnIdSpecialName.PASSWORD : extAttrName.getModelObject());
+                            ? ConnIdSpecialName.PASSWORD : extAttrName.getModelObject());
                         extAttrName.setRequired(!password.getModelObject());
                         target.add(extAttrName);
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/mapping/ItemTransformersTogglePanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/mapping/ItemTransformersTogglePanel.java
index 4ce939b..7e3ca1e 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/mapping/ItemTransformersTogglePanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/mapping/ItemTransformersTogglePanel.java
@@ -48,7 +48,7 @@
     public ItemTransformersTogglePanel(final WebMarkupContainer container, final PageReference pageRef) {
         super(Constants.OUTER, "itemTransformersTogglePanel", pageRef);
 
-        final LoadableDetachableModel<List<String>> model = new LoadableDetachableModel<List<String>>() {
+        final LoadableDetachableModel<List<String>> model = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 5275935387613157437L;
 
@@ -56,8 +56,8 @@
             protected List<String> load() {
                 // [!] this is required to disable changed with close button
                 return item == null
-                        ? List.of()
-                        : item.getTransformers();
+                    ? List.of()
+                    : item.getTransformers();
             }
         };
 
@@ -67,7 +67,7 @@
         List<String> choices = ImplementationRestClient.list(IdRepoImplementationType.ITEM_TRANSFORMER).stream().
                 map(EntityTO::getKey).sorted().collect(Collectors.toList());
 
-        form.add(new AjaxPalettePanel.Builder<String>().setAllowOrder(true).setRenderer(new IChoiceRenderer<String>() {
+        form.add(new AjaxPalettePanel.Builder<String>().setAllowOrder(true).setRenderer(new IChoiceRenderer<>() {
 
             private static final long serialVersionUID = 3464376099975468136L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/mapping/MappingPurposePanel.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/mapping/MappingPurposePanel.java
index 38a0841..f4dda55 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/mapping/MappingPurposePanel.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/mapping/MappingPurposePanel.java
@@ -44,7 +44,7 @@
 
         super(componentId, model);
 
-        propagation = new AjaxLink<Void>("propagationPurposeLink") {
+        propagation = new AjaxLink<>("propagationPurposeLink") {
 
             private static final long serialVersionUID = -6957616042924610305L;
 
@@ -56,7 +56,7 @@
             }
         };
 
-        pull = new AjaxLink<Void>("pullPurposeLink") {
+        pull = new AjaxLink<>("pullPurposeLink") {
 
             private static final long serialVersionUID = -6957616042924610305L;
 
@@ -68,7 +68,7 @@
             }
         };
 
-        both = new AjaxLink<Void>("bothPurposeLink") {
+        both = new AjaxLink<>("bothPurposeLink") {
 
             private static final long serialVersionUID = -6957616042924610305L;
 
@@ -80,7 +80,7 @@
             }
         };
 
-        none = new AjaxLink<Void>("nonePurposeLink") {
+        none = new AjaxLink<>("nonePurposeLink") {
 
             private static final long serialVersionUID = -6957616042924610305L;
 
diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java
index ddd027a..3df7a76 100644
--- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java
+++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java
@@ -134,21 +134,21 @@
         public Entitlements(final RoleTO modelObject) {
             setTitleModel(new ResourceModel("entitlements"));
             add(new AjaxPalettePanel.Builder<String>().build("entitlements",
-                    new PropertyModel<List<String>>(modelObject, "entitlements") {
+                new PropertyModel<>(modelObject, "entitlements") {
 
-                private static final long serialVersionUID = -7809699384012595307L;
+                    private static final long serialVersionUID = -7809699384012595307L;
 
-                @Override
-                public List<String> getObject() {
-                    return new ArrayList<>(modelObject.getEntitlements());
-                }
+                    @Override
+                    public List<String> getObject() {
+                        return new ArrayList<>(modelObject.getEntitlements());
+                    }
 
-                @Override
-                public void setObject(final List<String> object) {
-                    modelObject.getEntitlements().clear();
-                    modelObject.getEntitlements().addAll(object);
-                }
-            }, new ListModel<>(RoleRestClient.getAllAvailableEntitlements())).
+                    @Override
+                    public void setObject(final List<String> object) {
+                        modelObject.getEntitlements().clear();
+                        modelObject.getEntitlements().addAll(object);
+                    }
+                }, new ListModel<>(RoleRestClient.getAllAvailableEntitlements())).
                     hideLabel().setOutputMarkupId(true));
         }
     }
diff --git a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/PreferenceManager.java b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/PreferenceManager.java
index 845e7a6..6a08abf 100644
--- a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/PreferenceManager.java
+++ b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/PreferenceManager.java
@@ -48,7 +48,7 @@
 
     private static final ObjectMapper MAPPER = new ObjectMapper();
 
-    private static final TypeReference<Map<String, String>> MAP_TYPE_REF = new TypeReference<Map<String, String>>() {
+    private static final TypeReference<Map<String, String>> MAP_TYPE_REF = new TypeReference<>() {
     };
 
     private static final List<Integer> PAGINATOR_CHOICES = Arrays.asList(new Integer[] { 10, 25, 50 });
diff --git a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeWebApplication.java b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeWebApplication.java
index 11e5e8a..a849506 100644
--- a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeWebApplication.java
+++ b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/SyncopeWebApplication.java
@@ -185,7 +185,7 @@
 
         // read customFormLayout.json
         try (InputStream is = SyncopeWebApplication.class.getResourceAsStream('/' + CUSTOM_FORM_LAYOUT_FILE)) {
-            customFormLayout = MAPPER.readValue(is, new TypeReference<UserFormLayoutInfo>() {
+            customFormLayout = MAPPER.readValue(is, new TypeReference<>() {
             });
             File enduserDir = new File(props.getProperty("enduser.directory"));
             boolean existsEnduserDir = enduserDir.exists() && enduserDir.canRead() && enduserDir.isDirectory();
@@ -195,8 +195,8 @@
                         && customFormLayoutFile.canRead()
                         && customFormLayoutFile.isFile()) {
                     customFormLayout = MAPPER.readValue(FileUtils.openInputStream(customFormLayoutFile),
-                            new TypeReference<UserFormLayoutInfo>() {
-                    });
+                        new TypeReference<>() {
+                        });
                 }
             }
             FileAlterationObserver observer = existsEnduserDir
@@ -217,8 +217,8 @@
                         LOG.trace("{} has changed. Reloading form attributes customization configuration.",
                                 CUSTOM_FORM_LAYOUT_FILE);
                         customFormLayout = MAPPER.readValue(FileUtils.openInputStream(file),
-                                new TypeReference<UserFormLayoutInfo>() {
-                        });
+                            new TypeReference<>() {
+                            });
                     } catch (IOException e) {
                         LOG.error("{} While reading app customization configuration.",
                                 CUSTOM_FORM_LAYOUT_FILE, e);
@@ -231,8 +231,8 @@
                         LOG.trace("{} has been created. Loading form attributes customization configuration.",
                                 CUSTOM_FORM_LAYOUT_FILE);
                         customFormLayout = MAPPER.readValue(FileUtils.openInputStream(file),
-                                new TypeReference<UserFormLayoutInfo>() {
-                        });
+                            new TypeReference<>() {
+                            });
                     } catch (IOException e) {
                         LOG.error("{} While reading app customization configuration.",
                                 CUSTOM_FORM_LAYOUT_FILE, e);
diff --git a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/markup/html/form/BinaryFieldPanel.java b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/markup/html/form/BinaryFieldPanel.java
index f8d88a2..dbd60c2 100644
--- a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/markup/html/form/BinaryFieldPanel.java
+++ b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/markup/html/form/BinaryFieldPanel.java
@@ -165,7 +165,7 @@
 
         add(fileDownload);
 
-        downloadLink = new AjaxLink<Void>("downloadLink") {
+        downloadLink = new AjaxLink<>("downloadLink") {
 
             private static final long serialVersionUID = -4331619903296515985L;
 
@@ -228,7 +228,7 @@
         });
         uploadForm.add(fileUpload);
 
-        resetLink = new IndicatingAjaxLink<Void>("resetLink") {
+        resetLink = new IndicatingAjaxLink<>("resetLink") {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
diff --git a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/markup/html/form/MultiFieldPanel.java b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/markup/html/form/MultiFieldPanel.java
index 81717bd..b4dda38 100644
--- a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/markup/html/form/MultiFieldPanel.java
+++ b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/markup/html/form/MultiFieldPanel.java
@@ -75,7 +75,7 @@
         }
 
         public MultiFieldPanel<E> build(final String id, final String name, final FieldPanel<E> panelTemplate) {
-            return new MultiFieldPanel<E>(id, name, model) {
+            return new MultiFieldPanel<>(id, name, model) {
 
                 private static final long serialVersionUID = 6600411297376841521L;
 
diff --git a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/BasePage.java b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/BasePage.java
index eb238da..98f65cf 100644
--- a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/BasePage.java
+++ b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/BasePage.java
@@ -101,14 +101,14 @@
         addPageTitle(name);
 
         // collapse
-        collapse = new AjaxLink<Void>("collapse") {
+        collapse = new AjaxLink<>("collapse") {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
             @Override
             public void onClick(final AjaxRequestTarget target) {
                 Session.get().setAttribute(Constants.MENU_COLLAPSE,
-                        Session.get().getAttribute(Constants.MENU_COLLAPSE) == null
+                    Session.get().getAttribute(Constants.MENU_COLLAPSE) == null
                         ? true
                         : !(Boolean) Session.get().getAttribute(Constants.MENU_COLLAPSE));
             }
diff --git a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/EditSecurityQuestion.java b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/EditSecurityQuestion.java
index 3a63cad..e2398f0 100644
--- a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/EditSecurityQuestion.java
+++ b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/EditSecurityQuestion.java
@@ -82,14 +82,14 @@
         List<SecurityQuestionTO> securityQuestions = SecurityQuestionRestClient.list();
         securityQuestion.setChoices(securityQuestions.stream().
                 map(SecurityQuestionTO::getKey).collect(Collectors.toList()));
-        securityQuestion.setChoiceRenderer(new IChoiceRenderer<String>() {
+        securityQuestion.setChoiceRenderer(new IChoiceRenderer<>() {
 
             private static final long serialVersionUID = -4421146737845000747L;
 
             @Override
             public Object getDisplayValue(final String value) {
                 return securityQuestions.stream().filter(sq -> value.equals(sq.getKey())).
-                        map(SecurityQuestionTO::getContent).findFirst().orElse(null);
+                    map(SecurityQuestionTO::getContent).findFirst().orElse(null);
             }
 
             @Override
diff --git a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/SelfPasswordReset.java b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/SelfPasswordReset.java
index 3d34ed0..6c99b55 100644
--- a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/SelfPasswordReset.java
+++ b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/SelfPasswordReset.java
@@ -181,7 +181,7 @@
             notLoading.setVisible(isSecurityQuestionEnabled);
             add(notLoading);
 
-            AjaxLink<Void> reloadLink = new AjaxLink<Void>("reloadLink") {
+            AjaxLink<Void> reloadLink = new AjaxLink<>("reloadLink") {
 
                 private static final long serialVersionUID = -817438685948164787L;
 
diff --git a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/ChangePasswordPanel.java b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/ChangePasswordPanel.java
index c5e7fc1..240f7f7 100644
--- a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/ChangePasswordPanel.java
+++ b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/ChangePasswordPanel.java
@@ -63,7 +63,7 @@
 
     public ChangePasswordPanel(final String id, final NotificationPanel notificationPanel) {
         super(id);
-        form = new StatelessForm<Void>("changePassword") {
+        form = new StatelessForm<>("changePassword") {
 
             private static final long serialVersionUID = 418292023846536149L;
 
@@ -75,24 +75,24 @@
 
                 // div that is not visible (but not display:none either)
                 buffer.append(String.format(
-                        "<div style=\"width:0px;height:0px;position:absolute;"
+                    "<div style=\"width:0px;height:0px;position:absolute;"
                         + "left:-100px;top:-100px;overflow:hidden\" class=\"%s\">",
-                        cssClass));
+                    cssClass));
 
                 // add an empty textfield (otherwise IE doesn't work)
                 buffer.append("<input title=\"text_hidden\" "
-                        + "aria-label=\"text_hidden\" type=\"text\" "
-                        + "tabindex=\"-1\" autocomplete=\"off\"/>");
+                    + "aria-label=\"text_hidden\" type=\"text\" "
+                    + "tabindex=\"-1\" autocomplete=\"off\"/>");
 
                 // add the submitting component
                 final Component submittingComponent = (Component) getDefaultButton();
                 buffer.append("<input title=\"submit_hidden\" aria-label=\"submit_hidden\" "
-                        + "type=\"submit\" tabindex=\"-1\" name=\"");
+                    + "type=\"submit\" tabindex=\"-1\" name=\"");
                 buffer.append(getDefaultButton().getInputName());
                 buffer.append("\" onclick=\" var b=document.getElementById('");
                 buffer.append(submittingComponent.getMarkupId());
                 buffer.append(
-                        "'); if (b!=null&amp;&amp;b.onclick!=null&amp;&amp;typeof(b.onclick) != 'undefined') "
+                    "'); if (b!=null&amp;&amp;b.onclick!=null&amp;&amp;typeof(b.onclick) != 'undefined') "
                         + "{  var r = Wicket.bind(b.onclick, b)(); if (r != false) b.click(); } "
                         + "else { b.click(); };  return false;\" ");
                 buffer.append(" />");
diff --git a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/Sidebar.java b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/Sidebar.java
index bd31754..e393a14 100644
--- a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/Sidebar.java
+++ b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/Sidebar.java
@@ -121,45 +121,45 @@
         }
 
         ListView<Class<? extends BasePage>> extPages =
-                new ListView<Class<? extends BasePage>>("extPages", extPageClasses) {
+            new ListView<>("extPages", extPageClasses) {
 
-            private static final long serialVersionUID = 4949588177564901031L;
+                private static final long serialVersionUID = 4949588177564901031L;
 
-            @Override
-            protected void populateItem(final ListItem<Class<? extends BasePage>> item) {
-                WebMarkupContainer containingLI = new WebMarkupContainer("extPageLI");
-                item.add(containingLI);
+                @Override
+                protected void populateItem(final ListItem<Class<? extends BasePage>> item) {
+                    WebMarkupContainer containingLI = new WebMarkupContainer("extPageLI");
+                    item.add(containingLI);
 
-                ExtPage ann = item.getModelObject().getAnnotation(ExtPage.class);
+                    ExtPage ann = item.getModelObject().getAnnotation(ExtPage.class);
 
-                BookmarkablePageLink<Page> link = new BookmarkablePageLink<>("extPage", item.getModelObject());
+                    BookmarkablePageLink<Page> link = new BookmarkablePageLink<>("extPage", item.getModelObject());
 
-                link.add(new Label("extPageLabel", ann.label()));
+                    link.add(new Label("extPageLabel", ann.label()));
 
-                if (item.getModelObject().equals(pageRef.getPage().getClass())) {
-                    link.add(new Behavior() {
+                    if (item.getModelObject().equals(pageRef.getPage().getClass())) {
+                        link.add(new Behavior() {
 
-                        private static final long serialVersionUID = 1469628524240283489L;
+                            private static final long serialVersionUID = 1469628524240283489L;
 
-                        @Override
-                        public void renderHead(final Component component, final IHeaderResponse response) {
-                            response.render(OnDomReadyHeaderItem.forScript(
+                            @Override
+                            public void renderHead(final Component component, final IHeaderResponse response) {
+                                response.render(OnDomReadyHeaderItem.forScript(
                                     "$('#extensionsLink').addClass('active')"));
-                        }
+                            }
 
-                        @Override
-                        public void onComponentTag(final Component component, final ComponentTag tag) {
-                            tag.append("class", "active", " ");
-                        }
-                    });
+                            @Override
+                            public void onComponentTag(final Component component, final ComponentTag tag) {
+                                tag.append("class", "active", " ");
+                            }
+                        });
+                    }
+                    containingLI.add(link);
+
+                    Label extPageIcon = new Label("extPageIcon");
+                    extPageIcon.add(new AttributeModifier("class", "nav-icon " + ann.icon()));
+                    link.add(extPageIcon);
                 }
-                containingLI.add(link);
-
-                Label extPageIcon = new Label("extPageIcon");
-                extPageIcon.add(new AttributeModifier("class", "nav-icon " + ann.icon()));
-                link.add(extPageIcon);
-            }
-        };
+            };
 
         add(extPages.setRenderBodyOnly(true).setOutputMarkupId(true));
     }
diff --git a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/DerAttrs.java b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/DerAttrs.java
index f531228..68898f1 100644
--- a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/DerAttrs.java
+++ b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/DerAttrs.java
@@ -61,7 +61,7 @@
         super(id, modelObject, anyTypeClasses, whichDerAttrs);
 
         add(new DerAttrs.DerSchemas("derSchemas", schemas, attrs).setOutputMarkupId(true));
-        add(new ListView<MembershipTO>("membershipsDerSchemas", membershipTOs) {
+        add(new ListView<>("membershipsDerSchemas", membershipTOs) {
 
             private static final long serialVersionUID = 6741044372185745296L;
 
@@ -69,19 +69,19 @@
             protected void populateItem(final ListItem<MembershipTO> item) {
                 MembershipTO membershipTO = item.getModelObject();
                 item.add(new Accordion("membershipDerSchemas", List.of(new AbstractTab(
-                        new StringResourceModel(
-                                "attributes.membership.accordion",
-                                DerAttrs.this,
-                                Model.of(membershipTO))) {
+                    new StringResourceModel(
+                        "attributes.membership.accordion",
+                        DerAttrs.this,
+                        Model.of(membershipTO))) {
 
                     private static final long serialVersionUID = 1037272333056449378L;
 
                     @Override
                     public WebMarkupContainer getPanel(final String panelId) {
                         return new DerAttrs.DerSchemas(
-                                panelId,
-                                membershipSchemas.get(membershipTO.getGroupKey()),
-                                new ListModel<>(getAttrsFromTO(membershipTO)));
+                            panelId,
+                            membershipSchemas.get(membershipTO.getGroupKey()),
+                            new ListModel<>(getAttrsFromTO(membershipTO)));
                     }
                 }), Model.of(-1)).setOutputMarkupId(true));
             }
@@ -159,7 +159,7 @@
                 final IModel<List<Attr>> attrTOs) {
             super(id);
 
-            add(new ListView<Attr>("schemas", attrTOs) {
+            add(new ListView<>("schemas", attrTOs) {
 
                 private static final long serialVersionUID = 9101744072914090143L;
 
@@ -182,10 +182,10 @@
                     }
 
                     AjaxTextFieldPanel panel = new AjaxTextFieldPanel(
-                            "panel",
-                            schemas.get(attrTO.getSchema()).getLabel(SyncopeEnduserSession.get().getLocale()),
-                            model,
-                            false);
+                        "panel",
+                        schemas.get(attrTO.getSchema()).getLabel(SyncopeEnduserSession.get().getLocale()),
+                        model,
+                        false);
                     panel.setEnabled(false);
                     panel.setRequired(true);
                     panel.setOutputMarkupId(true);
diff --git a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/Groups.java b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/Groups.java
index 1ee0cd2..ad9fe22 100644
--- a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/Groups.java
+++ b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/Groups.java
@@ -108,7 +108,7 @@
             groupsContainer.setVisible(false);
         } else {
             AjaxPalettePanel.Builder<MembershipTO> builder = new AjaxPalettePanel.Builder<MembershipTO>().
-                    setRenderer(new IChoiceRenderer<MembershipTO>() {
+                    setRenderer(new IChoiceRenderer<>() {
 
                         private static final long serialVersionUID = -3086661086073628855L;
 
@@ -124,39 +124,39 @@
 
                         @Override
                         public MembershipTO getObject(
-                                final String id, final IModel<? extends List<? extends MembershipTO>> choices) {
+                            final String id, final IModel<? extends List<? extends MembershipTO>> choices) {
 
                             return choices.getObject().stream().
-                                    filter(object -> id.equalsIgnoreCase(object.getGroupName())).findAny().orElse(null);
+                                filter(object -> id.equalsIgnoreCase(object.getGroupName())).findAny().orElse(null);
                         }
                     }).event(getEventFunction());
 
             groupsContainer.add(builder.setAllowOrder(true).withFilter().build("groups",
-                    new ListModel<MembershipTO>() {
+                new ListModel<>() {
 
-                private static final long serialVersionUID = -2583290457773357445L;
+                    private static final long serialVersionUID = -2583290457773357445L;
 
-                @Override
-                public List<MembershipTO> getObject() {
-                    return Groups.this.groupsModel.getMemberships();
-                }
+                    @Override
+                    public List<MembershipTO> getObject() {
+                        return Groups.this.groupsModel.getMemberships();
+                    }
 
-            }, new AjaxPalettePanel.Builder.Query<MembershipTO>() {
+                }, new AjaxPalettePanel.Builder.Query<>() {
 
-                private static final long serialVersionUID = -7223078772249308813L;
+                    private static final long serialVersionUID = -7223078772249308813L;
 
-                @Override
-                public List<MembershipTO> execute(final String filter) {
-                    return (StringUtils.isEmpty(filter) || "*".equals(filter)
+                    @Override
+                    public List<MembershipTO> execute(final String filter) {
+                        return (StringUtils.isEmpty(filter) || "*".equals(filter)
                             ? groupsModel.getObject()
                             : GroupRestClient.searchAssignableGroups(
-                                    anyTO.getRealm(),
-                                    filter,
-                                    1, MAX_GROUP_LIST_CARDINALITY)).stream()
+                            anyTO.getRealm(),
+                            filter,
+                            1, MAX_GROUP_LIST_CARDINALITY)).stream()
                             .map(input -> new MembershipTO.Builder(input.getKey())
-                            .groupName(input.getName()).build()).collect(Collectors.toList());
-                }
-            }).hideLabel().setOutputMarkupId(true));
+                                .groupName(input.getName()).build()).collect(Collectors.toList());
+                    }
+                }).hideLabel().setOutputMarkupId(true));
             // ---------------------------------
         }
     }
diff --git a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/PlainAttrs.java b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/PlainAttrs.java
index 0ceea6f..5f8fa38 100644
--- a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/PlainAttrs.java
+++ b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/PlainAttrs.java
@@ -86,7 +86,7 @@
         previousObject = modelObject.getPreviousUserTO();
 
         add(new PlainSchemasOwn("plainSchemas", schemas, attrs).setOutputMarkupId(true));
-        add(new ListView<MembershipTO>("membershipsPlainSchemas", membershipTOs) {
+        add(new ListView<>("membershipsPlainSchemas", membershipTOs) {
 
             private static final long serialVersionUID = 6741044372185745296L;
 
@@ -94,29 +94,29 @@
             protected void populateItem(final ListItem<MembershipTO> item) {
                 MembershipTO membershipTO = item.getModelObject();
                 item.add(new Accordion("membershipPlainSchemas", List.of(new AbstractTab(
-                        new StringResourceModel(
-                                "attributes.membership.accordion",
-                                PlainAttrs.this,
-                                Model.of(membershipTO))) {
+                    new StringResourceModel(
+                        "attributes.membership.accordion",
+                        PlainAttrs.this,
+                        Model.of(membershipTO))) {
 
                     private static final long serialVersionUID = 1037272333056449378L;
 
                     @Override
                     public WebMarkupContainer getPanel(final String panelId) {
                         return new PlainSchemasMemberships(
-                                panelId,
-                                membershipTO.getGroupName(),
-                                membershipSchemas.get(membershipTO.getGroupKey()),
-                                new LoadableDetachableModel<Attributable>() { // SYNCOPE-1439
+                            panelId,
+                            membershipTO.getGroupName(),
+                            membershipSchemas.get(membershipTO.getGroupKey()),
+                            new LoadableDetachableModel<>() { // SYNCOPE-1439
 
-                            private static final long serialVersionUID = 526768546610546553L;
+                                private static final long serialVersionUID = 526768546610546553L;
 
-                            @Override
-                            protected Attributable load() {
-                                return membershipTO;
-                            }
+                                @Override
+                                protected Attributable load() {
+                                    return membershipTO;
+                                }
 
-                        });
+                            });
                     }
                 }), Model.of(-1)).setOutputMarkupId(true));
             }
@@ -349,15 +349,15 @@
 
             super(id);
 
-            add(new ListView<Attr>("schemas",
-                    new ListModel<Attr>(new ArrayList<Attr>(
-                            attributableTO.getObject().getPlainAttrs().stream().sorted(attrComparator).
-                                    collect(Collectors.toList())))) {
+            add(new ListView<>("schemas",
+                new ListModel<>(new ArrayList<>(
+                    attributableTO.getObject().getPlainAttrs().stream().sorted(attrComparator).
+                        collect(Collectors.toList())))) {
 
                 private static final long serialVersionUID = 5306618783986001008L;
 
                 @Override
-                @SuppressWarnings({ "unchecked", "rawtypes" })
+                @SuppressWarnings({"unchecked", "rawtypes"})
                 protected void populateItem(final ListItem<Attr> item) {
                     Attr attrTO = item.getModelObject();
                     PlainSchemaTO schema = schemas.get(attrTO.getSchema());
@@ -371,14 +371,14 @@
                     AbstractFieldPanel<?> panel = getFieldPanel(schemas.get(attrTO.getSchema()));
                     if (schemas.get(attrTO.getSchema()).isMultivalue()) {
                         panel = new MultiFieldPanel.Builder<>(
-                                new PropertyModel<>(
-                                        attributableTO.getObject().getPlainAttr(attrTO.getSchema()), "values"))
-                                .build("panel", attrTO.getSchema(), FieldPanel.class.cast(panel));
+                            new PropertyModel<>(
+                                attributableTO.getObject().getPlainAttr(attrTO.getSchema()), "values"))
+                            .build("panel", attrTO.getSchema(), FieldPanel.class.cast(panel));
                         // SYNCOPE-1215 the entire multifield panel must be readonly, not only its field
                         ((MultiFieldPanel) panel).setReadOnly(schema == null ? false : schema.isReadonly());
                     } else {
                         FieldPanel.class.cast(panel).setNewModel(attrTO.getValues()).
-                                setReadOnly(schema == null ? false : schema.isReadonly());
+                            setReadOnly(schema == null ? false : schema.isReadonly());
                     }
 
                     item.add(panel);
@@ -398,12 +398,12 @@
 
             super(id);
 
-            add(new ListView<Attr>("schemas", attrTOs) {
+            add(new ListView<>("schemas", attrTOs) {
 
                 private static final long serialVersionUID = 9101744072914090143L;
 
                 @Override
-                @SuppressWarnings({ "unchecked", "rawtypes" })
+                @SuppressWarnings({"unchecked", "rawtypes"})
                 protected void populateItem(final ListItem<Attr> item) {
                     Attr attrTO = item.getModelObject();
                     PlainSchemaTO schema = schemas.get(attrTO.getSchema());
@@ -417,15 +417,15 @@
                     AbstractFieldPanel<?> panel = getFieldPanel(schemas.get(attrTO.getSchema()));
                     if (schemas.get(attrTO.getSchema()).isMultivalue()) {
                         panel = new MultiFieldPanel.Builder<>(
-                                new PropertyModel<>(attrTO, "values")).build(
-                                "panel",
-                                attrTO.getSchema(),
-                                FieldPanel.class.cast(panel));
+                            new PropertyModel<>(attrTO, "values")).build(
+                            "panel",
+                            attrTO.getSchema(),
+                            FieldPanel.class.cast(panel));
                         // SYNCOPE-1215 the entire multifield panel must be readonly, not only its field
                         ((MultiFieldPanel) panel).setReadOnly(schema == null ? false : schema.isReadonly());
                     } else {
                         FieldPanel.class.cast(panel).setNewModel(attrTO.getValues()).
-                                setReadOnly(schema == null ? false : schema.isReadonly());
+                            setReadOnly(schema == null ? false : schema.isReadonly());
                     }
                     item.add(panel);
                 }
diff --git a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/Resources.java b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/Resources.java
index f02bcd6..1897edb 100644
--- a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/Resources.java
+++ b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/Resources.java
@@ -56,21 +56,21 @@
         this.available = new ListModel<>(List.of());
 
         add(new AjaxPalettePanel.Builder<String>().build("resources",
-                new PropertyModel<List<String>>(entityTO, "resources") {
+            new PropertyModel<>(entityTO, "resources") {
 
-            private static final long serialVersionUID = 3799387950428254072L;
+                private static final long serialVersionUID = 3799387950428254072L;
 
-            @Override
-            public List<String> getObject() {
-                return new ArrayList<>(entityTO.getResources());
-            }
+                @Override
+                public List<String> getObject() {
+                    return new ArrayList<>(entityTO.getResources());
+                }
 
-            @Override
-            public void setObject(final List<String> object) {
-                entityTO.getResources().clear();
-                entityTO.getResources().addAll(object);
-            }
-        }, available).hideLabel().setOutputMarkupId(true));
+                @Override
+                public void setObject(final List<String> object) {
+                    entityTO.getResources().clear();
+                    entityTO.getResources().addAll(object);
+                }
+            }, available).hideLabel().setOutputMarkupId(true));
     }
 
     @Override
diff --git a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/VirAttrs.java b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/VirAttrs.java
index c9284e4..3f08b36 100644
--- a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/VirAttrs.java
+++ b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/VirAttrs.java
@@ -61,7 +61,7 @@
         super(id, modelObject, anyTypeClasses, whichVirAttrs);
 
         add(new VirAttrs.VirSchemas("virSchemas", schemas, attrs).setOutputMarkupId(true));
-        add(new ListView<MembershipTO>("membershipsVirSchemas", membershipTOs) {
+        add(new ListView<>("membershipsVirSchemas", membershipTOs) {
 
             private static final long serialVersionUID = 9101744072914090143L;
 
@@ -69,20 +69,20 @@
             protected void populateItem(final ListItem<MembershipTO> item) {
                 MembershipTO membershipTO = item.getModelObject();
                 item.add(new Accordion("membershipVirSchemas", List.of(
-                        new AbstractTab(new StringResourceModel(
-                                "attributes.membership.accordion", VirAttrs.this, Model.of(membershipTO))) {
+                    new AbstractTab(new StringResourceModel(
+                        "attributes.membership.accordion", VirAttrs.this, Model.of(membershipTO))) {
 
-                    private static final long serialVersionUID = 1037272333056449378L;
+                        private static final long serialVersionUID = 1037272333056449378L;
 
-                    @Override
-                    public WebMarkupContainer getPanel(final String panelId) {
-                        return new VirAttrs.VirSchemas(
+                        @Override
+                        public WebMarkupContainer getPanel(final String panelId) {
+                            return new VirAttrs.VirSchemas(
                                 panelId,
                                 membershipTO.getGroupName(),
                                 membershipSchemas.get(membershipTO.getGroupKey()),
                                 new ListModel<>(getAttrsFromTO(membershipTO)));
-                    }
-                }), Model.of(-1)).setOutputMarkupId(true));
+                        }
+                    }), Model.of(-1)).setOutputMarkupId(true));
             }
         }).setOutputMarkupId(true);
     }
@@ -168,7 +168,7 @@
                 final IModel<List<Attr>> attrTOs) {
             super(id);
 
-            add(new ListView<Attr>("schemas", attrTOs) {
+            add(new ListView<>("schemas", attrTOs) {
 
                 private static final long serialVersionUID = 9101744072914090143L;
 
@@ -179,7 +179,7 @@
 
                     // set default values, if any
                     if (attrTO.getValues().stream().filter(StringUtils::isNotBlank)
-                            .collect(Collectors.toList()).isEmpty()) {
+                        .collect(Collectors.toList()).isEmpty()) {
                         attrTO.getValues().clear();
                         attrTO.getValues().addAll(getDefaultValues(attrTO.getSchema(), groupName));
                     }
@@ -187,16 +187,16 @@
                     VirSchemaTO virSchemaTO = schemas.get(attrTO.getSchema());
 
                     AbstractFieldPanel<?> panel = new AjaxTextFieldPanel(
-                            "panel",
-                            virSchemaTO.getLabel(SyncopeEnduserSession.get().getLocale()),
-                            new Model<>(),
-                            false);
+                        "panel",
+                        virSchemaTO.getLabel(SyncopeEnduserSession.get().getLocale()),
+                        new Model<>(),
+                        false);
 
                     panel = new MultiFieldPanel.Builder<>(
-                            new PropertyModel<List<String>>(attrTO, "values")).build(
-                            "panel",
-                            virSchemaTO.getLabel(SyncopeEnduserSession.get().getLocale()),
-                            AjaxTextFieldPanel.class.cast(panel));
+                        new PropertyModel<List<String>>(attrTO, "values")).build(
+                        "panel",
+                        virSchemaTO.getLabel(SyncopeEnduserSession.get().getLocale()),
+                        AjaxTextFieldPanel.class.cast(panel));
                     panel.setEnabled(!virSchemaTO.isReadonly() && !renderAsReadonly(attrTO.getSchema(), groupName));
 
                     item.add(panel);
diff --git a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/rest/GroupRestClient.java b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/rest/GroupRestClient.java
index 23c98fd..7994739 100644
--- a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/rest/GroupRestClient.java
+++ b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/rest/GroupRestClient.java
@@ -46,7 +46,7 @@
 
     public static ProvisioningResult<GroupTO> create(final GroupCR groupTO) {
         Response response = getService(GroupService.class).create(groupTO);
-        return response.readEntity(new GenericType<ProvisioningResult<GroupTO>>() {
+        return response.readEntity(new GenericType<>() {
         });
     }
 
@@ -54,7 +54,7 @@
         ProvisioningResult<GroupTO> result;
         synchronized (this) {
             result = getService(etag, GroupService.class).update(groupPatch).
-                    readEntity(new GenericType<ProvisioningResult<GroupTO>>() {
+                    readEntity(new GenericType<>() {
                     });
             resetClient(getAnyServiceClass());
         }
diff --git a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/rest/UserSelfRestClient.java b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/rest/UserSelfRestClient.java
index d1a7cef..e4ffa76 100644
--- a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/rest/UserSelfRestClient.java
+++ b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/rest/UserSelfRestClient.java
@@ -40,8 +40,8 @@
     public ProvisioningResult<UserTO> create(final UserCR createReq) {
         ProvisioningResult<UserTO> result;
         result = getService(UserSelfService.class).create(createReq).readEntity(
-                new GenericType<ProvisioningResult<UserTO>>() {
-        });
+            new GenericType<>() {
+            });
         return result;
     }
 
@@ -49,7 +49,7 @@
         ProvisioningResult<UserTO> result;
         synchronized (this) {
             result = getService(etag, UserSelfService.class).update(userPatch).
-                    readEntity(new GenericType<ProvisioningResult<UserTO>>() {
+                    readEntity(new GenericType<>() {
                     });
             resetClient(UserSelfService.class);
         }
diff --git a/client/idrepo/lib/src/main/java/org/apache/syncope/client/lib/RestClientExceptionMapper.java b/client/idrepo/lib/src/main/java/org/apache/syncope/client/lib/RestClientExceptionMapper.java
index b7b4a5a..901c38d 100644
--- a/client/idrepo/lib/src/main/java/org/apache/syncope/client/lib/RestClientExceptionMapper.java
+++ b/client/idrepo/lib/src/main/java/org/apache/syncope/client/lib/RestClientExceptionMapper.java
@@ -94,7 +94,7 @@
         }
         if (errors == null) {
             try {
-                errors = response.readEntity(new GenericType<List<ErrorTO>>() {
+                errors = response.readEntity(new GenericType<>() {
                 });
             } catch (Exception e) {
                 LOG.debug("Could not read {} list, attempting to read headers...", ErrorTO.class.getName(), e);
diff --git a/client/idrepo/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java b/client/idrepo/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
index 7c033fa..e1d2a4c 100644
--- a/client/idrepo/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
+++ b/client/idrepo/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
@@ -369,12 +369,12 @@
             return Triple.of(
                     OBJECT_MAPPER.readValue(
                             response.getHeaderString(RESTHeaders.OWNED_ENTITLEMENTS),
-                            new TypeReference<Map<String, Set<String>>>() {
-                    }),
+                        new TypeReference<>() {
+                        }),
                     OBJECT_MAPPER.readValue(
                             response.getHeaderString(RESTHeaders.DELEGATIONS),
-                            new TypeReference<List<String>>() {
-                    }),
+                        new TypeReference<>() {
+                        }),
                     response.readEntity(UserTO.class));
         } catch (IOException e) {
             throw new IllegalStateException(e);
diff --git a/common/idm/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/ReconQuery.java b/common/idm/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/ReconQuery.java
index 4aaf620..06520df 100644
--- a/common/idm/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/ReconQuery.java
+++ b/common/idm/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/ReconQuery.java
@@ -55,7 +55,7 @@
 
         public Builder moreAttrsToGet(final String... moreAttrsToGet) {
             if (moreAttrsToGet != null) {
-                Set<String> matg = Optional.ofNullable(instance.getMoreAttrsToGet()).orElseGet(() -> new HashSet<>());
+                Set<String> matg = Optional.ofNullable(instance.getMoreAttrsToGet()).orElseGet(HashSet::new);
                 matg.addAll(Stream.of(moreAttrsToGet).collect(Collectors.toSet()));
                 instance.setMoreAttrsToGet(matg);
             }
@@ -64,7 +64,7 @@
 
         public Builder moreAttrsToGet(final Collection<String> moreAttrsToGet) {
             if (moreAttrsToGet != null) {
-                Set<String> matg = Optional.ofNullable(instance.getMoreAttrsToGet()).orElseGet(() -> new HashSet<>());
+                Set<String> matg = Optional.ofNullable(instance.getMoreAttrsToGet()).orElseGet(HashSet::new);
                 matg.addAll(moreAttrsToGet);
                 instance.setMoreAttrsToGet(matg);
             }
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/collections/CircularFifoQueue.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/collections/CircularFifoQueue.java
index 0446796..affa39c 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/collections/CircularFifoQueue.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/collections/CircularFifoQueue.java
@@ -361,7 +361,7 @@
      */
     @Override
     public Iterator<E> iterator() {
-        return new Iterator<E>() {
+        return new Iterator<>() {
 
             private int index = start;
 
diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/search/AbstractFiqlSearchConditionBuilder.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/search/AbstractFiqlSearchConditionBuilder.java
index 6ddeaf8..7f36d56 100644
--- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/search/AbstractFiqlSearchConditionBuilder.java
+++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/search/AbstractFiqlSearchConditionBuilder.java
@@ -35,7 +35,7 @@
 
     private static final long serialVersionUID = 9043884238032703381L;
 
-    public static final Map<String, String> CONTEXTUAL_PROPERTIES = new HashMap<String, String>() {
+    public static final Map<String, String> CONTEXTUAL_PROPERTIES = new HashMap<>() {
 
         private static final long serialVersionUID = 3109256773218160485L;
 
diff --git a/common/idrepo/lib/src/test/java/org/apache/syncope/common/lib/SerializationTest.java b/common/idrepo/lib/src/test/java/org/apache/syncope/common/lib/SerializationTest.java
index fad075e..1675726 100644
--- a/common/idrepo/lib/src/test/java/org/apache/syncope/common/lib/SerializationTest.java
+++ b/common/idrepo/lib/src/test/java/org/apache/syncope/common/lib/SerializationTest.java
@@ -55,8 +55,8 @@
         objectMapper().writeValue(writer, original);
 
         List<ReportTO> actual = objectMapper().readValue(writer.toString(),
-                new TypeReference<List<ReportTO>>() {
-        });
+            new TypeReference<>() {
+            });
         assertEquals(original, actual);
     }
 
@@ -126,8 +126,8 @@
         objectMapper().writeValue(writer, original);
 
         PagedResult<GroupTO> actual = objectMapper().readValue(writer.toString(),
-                new TypeReference<PagedResult<GroupTO>>() {
-        });
+            new TypeReference<>() {
+            });
         assertEquals(original, actual);
     }
 
@@ -151,8 +151,8 @@
         objectMapper().writeValue(writer, original);
 
         ProvisioningResult<GroupTO> actual = objectMapper().readValue(writer.toString(),
-                new TypeReference<ProvisioningResult<GroupTO>>() {
-        });
+            new TypeReference<>() {
+            });
         assertEquals(original, actual);
     }
 }
diff --git a/common/idrepo/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/ConnObjectTOQuery.java b/common/idrepo/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/ConnObjectTOQuery.java
index dd86b2f..3809be9 100644
--- a/common/idrepo/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/ConnObjectTOQuery.java
+++ b/common/idrepo/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/ConnObjectTOQuery.java
@@ -63,7 +63,7 @@
 
         public Builder moreAttrsToGet(final String... moreAttrsToGet) {
             if (moreAttrsToGet != null) {
-                Set<String> matg = Optional.ofNullable(instance.getMoreAttrsToGet()).orElseGet(() -> new HashSet<>());
+                Set<String> matg = Optional.ofNullable(instance.getMoreAttrsToGet()).orElseGet(HashSet::new);
                 matg.addAll(Stream.of(moreAttrsToGet).collect(Collectors.toSet()));
                 instance.setMoreAttrsToGet(matg);
             }
@@ -72,7 +72,7 @@
 
         public Builder moreAttrsToGet(final Collection<String> moreAttrsToGet) {
             if (moreAttrsToGet != null) {
-                Set<String> matg = Optional.ofNullable(instance.getMoreAttrsToGet()).orElseGet(() -> new HashSet<>());
+                Set<String> matg = Optional.ofNullable(instance.getMoreAttrsToGet()).orElseGet(HashSet::new);
                 matg.addAll(moreAttrsToGet);
                 instance.setMoreAttrsToGet(matg);
             }
diff --git a/core/idrepo/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/RestServiceExceptionMapper.java b/core/idrepo/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/RestServiceExceptionMapper.java
index fe2fdcc..e0a2479 100644
--- a/core/idrepo/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/RestServiceExceptionMapper.java
+++ b/core/idrepo/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/RestServiceExceptionMapper.java
@@ -74,7 +74,7 @@
 
     private static final String UNIQUE_MSG_KEY = "UniqueConstraintViolation";
 
-    private static final Map<String, String> EXCEPTION_CODE_MAP = new HashMap<String, String>() {
+    private static final Map<String, String> EXCEPTION_CODE_MAP = new HashMap<>() {
 
         private static final long serialVersionUID = -7688359318035249200L;
 
diff --git a/core/idrepo/rest-cxf/src/test/java/org/apache/syncope/core/rest/cxf/service/AnyObjectServiceTest.java b/core/idrepo/rest-cxf/src/test/java/org/apache/syncope/core/rest/cxf/service/AnyObjectServiceTest.java
index 7a54c94..5118cd9 100644
--- a/core/idrepo/rest-cxf/src/test/java/org/apache/syncope/core/rest/cxf/service/AnyObjectServiceTest.java
+++ b/core/idrepo/rest-cxf/src/test/java/org/apache/syncope/core/rest/cxf/service/AnyObjectServiceTest.java
@@ -238,7 +238,7 @@
         InputStream in = list(MediaType.APPLICATION_JSON_TYPE);
 
         PagedResult<AnyObjectTO> list = new SyncopeObjectMapper().
-                readValue(IOUtils.toString(in), new TypeReference<PagedResult<AnyObjectTO>>() {
+                readValue(IOUtils.toString(in), new TypeReference<>() {
                 });
         checkList(list);
     }
@@ -248,7 +248,7 @@
         InputStream in = list(MediaType.APPLICATION_XML_TYPE);
 
         PagedResult<AnyObjectTO> list = new SyncopeXmlMapper().
-                readValue(IOUtils.toString(in), new TypeReference<PagedResult<AnyObjectTO>>() {
+                readValue(IOUtils.toString(in), new TypeReference<>() {
                 });
         checkList(list);
     }
@@ -258,7 +258,7 @@
         InputStream in = list(RESTHeaders.APPLICATION_YAML_TYPE);
 
         PagedResult<AnyObjectTO> list = new SyncopeYAMLMapper().
-                readValue(IOUtils.toString(in), new TypeReference<PagedResult<AnyObjectTO>>() {
+                readValue(IOUtils.toString(in), new TypeReference<>() {
                 });
         checkList(list);
     }
diff --git a/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAJSONEntityListener.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAJSONEntityListener.java
index f89f6d6..865f353 100644
--- a/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAJSONEntityListener.java
+++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAJSONEntityListener.java
@@ -48,7 +48,7 @@
                     attr.getUniqueValue().setAttr(attr);
                 }
                 return attr;
-            }).forEach(attr -> entity.add(attr));
+            }).forEach(entity::add);
         }
     }
 
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
index 7074f89..a432a51 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
@@ -343,7 +343,7 @@
 
             String outputTableName = entity.isPresent()
                     ? entities.getKey(entity.get())
-                    : relationTables.keySet().stream().filter(key -> tableName.equalsIgnoreCase(key)).findFirst().
+                    : relationTables.keySet().stream().filter(tableName::equalsIgnoreCase).findFirst().
                             orElse(tableName);
             if (isTask(tableName)) {
                 outputTableName = "Task";
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java
index e3f8675..65a9bf4 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java
@@ -338,7 +338,7 @@
 
                         user.getLinkedAccounts().stream().
                                 filter(account -> account.getPassword() != null).
-                                forEach(account -> rule.enforce(account));
+                                forEach(rule::enforce);
                     });
                 }
 
@@ -416,7 +416,7 @@
 
                         user.getLinkedAccounts().stream().
                                 filter(account -> account.getUsername() != null).
-                                forEach(account -> rule.enforce(account));
+                                forEach(rule::enforce);
                     });
                 }
 
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/auth/AbstractClientApp.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/auth/AbstractClientApp.java
index b1a9e9e..fb7ac7b 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/auth/AbstractClientApp.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/auth/AbstractClientApp.java
@@ -159,8 +159,8 @@
     public List<Attr> getProperties() {
         return properties == null
                 ? new ArrayList<>(0)
-                : POJOHelper.deserialize(properties, new TypeReference<List<Attr>>() {
-                });
+                : POJOHelper.deserialize(properties, new TypeReference<>() {
+        });
     }
 
     @Override
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/auth/JPAAuthProfile.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/auth/JPAAuthProfile.java
index 2ea123e..9f00afc 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/auth/JPAAuthProfile.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/auth/JPAAuthProfile.java
@@ -76,8 +76,8 @@
     public List<GoogleMfaAuthToken> getGoogleMfaAuthTokens() {
         return googleMfaAuthTokens == null
                 ? new ArrayList<>(0)
-                : POJOHelper.deserialize(googleMfaAuthTokens, new TypeReference<List<GoogleMfaAuthToken>>() {
-                });
+                : POJOHelper.deserialize(googleMfaAuthTokens, new TypeReference<>() {
+        });
     }
 
     @Override
@@ -89,8 +89,8 @@
     public List<GoogleMfaAuthAccount> getGoogleMfaAuthAccounts() {
         return googleMfaAuthAccounts == null
                 ? new ArrayList<>(0)
-                : POJOHelper.deserialize(googleMfaAuthAccounts, new TypeReference<List<GoogleMfaAuthAccount>>() {
-                });
+                : POJOHelper.deserialize(googleMfaAuthAccounts, new TypeReference<>() {
+        });
     }
 
     @Override
@@ -102,8 +102,8 @@
     public List<U2FDevice> getU2FRegisteredDevices() {
         return u2fRegisteredDevices == null
                 ? new ArrayList<>(0)
-                : POJOHelper.deserialize(u2fRegisteredDevices, new TypeReference<List<U2FDevice>>() {
-                });
+                : POJOHelper.deserialize(u2fRegisteredDevices, new TypeReference<>() {
+        });
     }
 
     @Override
@@ -115,8 +115,8 @@
     public List<ImpersonationAccount> getImpersonationAccounts() {
         return impersonatedAccounts == null
                 ? new ArrayList<>(0)
-                : POJOHelper.deserialize(impersonatedAccounts, new TypeReference<List<ImpersonationAccount>>() {
-                });
+                : POJOHelper.deserialize(impersonatedAccounts, new TypeReference<>() {
+        });
     }
 
     @Override
@@ -129,8 +129,8 @@
         return webAuthnDeviceCredentials == null
                 ? new ArrayList<>(0)
                 : POJOHelper.deserialize(webAuthnDeviceCredentials,
-                        new TypeReference<List<WebAuthnDeviceCredential>>() {
-                });
+            new TypeReference<>() {
+            });
     }
 
     @Override
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/auth/JPAWAConfigEntry.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/auth/JPAWAConfigEntry.java
index dc73a4a..30fc9cc 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/auth/JPAWAConfigEntry.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/auth/JPAWAConfigEntry.java
@@ -42,8 +42,8 @@
     public List<String> getValues() {
         return waConfigValues == null
                 ? List.of()
-                : POJOHelper.deserialize(waConfigValues, new TypeReference<List<String>>() {
-                });
+                : POJOHelper.deserialize(waConfigValues, new TypeReference<>() {
+        });
     }
 
     @Override
diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/jexl/JexlUtils.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/jexl/JexlUtils.java
index 891acca..5125963 100644
--- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/jexl/JexlUtils.java
+++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/jexl/JexlUtils.java
@@ -65,7 +65,7 @@
     private static final String[] IGNORE_FIELDS = { "password", "clearPassword", "serialVersionUID", "class" };
 
     private static final Map<Class<?>, Set<Pair<PropertyDescriptor, Field>>> FIELD_CACHE =
-            Collections.synchronizedMap(new HashMap<Class<?>, Set<Pair<PropertyDescriptor, Field>>>());
+            Collections.synchronizedMap(new HashMap<>());
 
     private static JexlEngine JEXL_ENGINE;
 
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
index cf29706..bec14a0 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
@@ -50,6 +50,7 @@
 import org.apache.syncope.core.persistence.api.dao.AccessTokenDAO;
 import org.apache.syncope.core.persistence.api.dao.SecurityQuestionDAO;
 import org.apache.syncope.core.persistence.api.entity.group.Group;
+import org.apache.syncope.core.persistence.api.entity.resource.Item;
 import org.apache.syncope.core.persistence.api.entity.user.SecurityQuestion;
 import org.apache.syncope.core.persistence.api.entity.user.User;
 import org.apache.syncope.core.provisioning.api.PropagationByResource;
@@ -367,7 +368,7 @@
     private boolean isPasswordMapped(final ExternalResource resource) {
         return resource.getProvision(anyTypeDAO.findUser()).
                 filter(provision -> provision.getMapping() != null).
-                map(provision -> provision.getMapping().getItems().stream().anyMatch(item -> item.isPassword())).
+                map(provision -> provision.getMapping().getItems().stream().anyMatch(Item::isPassword)).
                 orElse(false);
     }
 
diff --git a/core/spring/src/main/java/org/apache/syncope/core/spring/policy/DefaultAccountRule.java b/core/spring/src/main/java/org/apache/syncope/core/spring/policy/DefaultAccountRule.java
index 703b8a9..355b9e0 100644
--- a/core/spring/src/main/java/org/apache/syncope/core/spring/policy/DefaultAccountRule.java
+++ b/core/spring/src/main/java/org/apache/syncope/core/spring/policy/DefaultAccountRule.java
@@ -85,14 +85,14 @@
 
         // check prefix
         conf.getPrefixesNotPermitted().stream().
-                filter(prefix -> username.startsWith(prefix)).
+                filter(username::startsWith).
                 forEach(item -> {
                     throw new AccountPolicyException("Prefix not permitted");
                 });
 
         // check suffix
         conf.getSuffixesNotPermitted().stream().
-                filter(suffix -> username.endsWith(suffix)).
+                filter(username::endsWith).
                 forEach(item -> {
                     throw new AccountPolicyException("Suffix not permitted");
                 });
@@ -104,7 +104,7 @@
         Set<String> wordsNotPermitted = new HashSet<>(conf.getWordsNotPermitted());
         wordsNotPermitted.addAll(
                 conf.getSchemasNotPermitted().stream().
-                        map(schema -> user.getPlainAttr(schema)).
+                        map(user::getPlainAttr).
                         filter(Optional::isPresent).
                         map(attr -> attr.get().getValuesAsStrings()).
                         filter(values -> !CollectionUtils.isEmpty(values)).
@@ -124,7 +124,7 @@
         Set<String> wordsNotPermitted = new HashSet<>(conf.getWordsNotPermitted());
         wordsNotPermitted.addAll(
                 conf.getSchemasNotPermitted().stream().
-                        map(schema -> account.getPlainAttr(schema)).
+                        map(account::getPlainAttr).
                         filter(Optional::isPresent).
                         map(attr -> attr.get().getValuesAsStrings()).
                         filter(values -> !CollectionUtils.isEmpty(values)).
diff --git a/core/spring/src/main/java/org/apache/syncope/core/spring/policy/DefaultPasswordRule.java b/core/spring/src/main/java/org/apache/syncope/core/spring/policy/DefaultPasswordRule.java
index 4326075..70cc770 100644
--- a/core/spring/src/main/java/org/apache/syncope/core/spring/policy/DefaultPasswordRule.java
+++ b/core/spring/src/main/java/org/apache/syncope/core/spring/policy/DefaultPasswordRule.java
@@ -98,14 +98,14 @@
 
         // check prefix
         conf.getPrefixesNotPermitted().stream().
-                filter(prefix -> clear.startsWith(prefix)).
+                filter(clear::startsWith).
                 forEach(item -> {
                     throw new PasswordPolicyException("Prefix not permitted");
                 });
 
         // check suffix
         conf.getSuffixesNotPermitted().stream().
-                filter(suffix -> clear.endsWith(suffix)).
+                filter(clear::endsWith).
                 forEach(item -> {
                     throw new PasswordPolicyException("Suffix not permitted");
                 });
@@ -182,7 +182,7 @@
             Set<String> wordsNotPermitted = new HashSet<>(conf.getWordsNotPermitted());
             wordsNotPermitted.addAll(
                     conf.getSchemasNotPermitted().stream().
-                            map(schema -> user.getPlainAttr(schema)).
+                            map(user::getPlainAttr).
                             filter(Optional::isPresent).
                             map(attr -> attr.get().getValuesAsStrings()).
                             filter(values -> !CollectionUtils.isEmpty(values)).
@@ -198,7 +198,7 @@
     public void enforce(final LinkedAccount account) {
         conf.getWordsNotPermitted().addAll(
                 conf.getSchemasNotPermitted().stream().
-                        map(schema -> account.getPlainAttr(schema)).
+                        map(account::getPlainAttr).
                         filter(Optional::isPresent).
                         map(attr -> attr.get().getValuesAsStrings()).
                         filter(values -> !CollectionUtils.isEmpty(values)).
@@ -219,7 +219,7 @@
                 Set<String> wordsNotPermitted = new HashSet<>(conf.getWordsNotPermitted());
                 wordsNotPermitted.addAll(
                         conf.getSchemasNotPermitted().stream().
-                                map(schema -> account.getPlainAttr(schema)).
+                                map(account::getPlainAttr).
                                 filter(Optional::isPresent).
                                 map(attr -> attr.get().getValuesAsStrings()).
                                 filter(values -> !CollectionUtils.isEmpty(values)).
diff --git a/core/spring/src/main/java/org/apache/syncope/core/spring/security/SyncopeJWTSSOProvider.java b/core/spring/src/main/java/org/apache/syncope/core/spring/security/SyncopeJWTSSOProvider.java
index 2253b4a..5e27fa1 100644
--- a/core/spring/src/main/java/org/apache/syncope/core/spring/security/SyncopeJWTSSOProvider.java
+++ b/core/spring/src/main/java/org/apache/syncope/core/spring/security/SyncopeJWTSSOProvider.java
@@ -96,8 +96,8 @@
                 try {
                     authorities = POJOHelper.deserialize(
                             ENCRYPTOR.decode(new String(accessToken.getAuthorities()), CipherAlgorithm.AES),
-                            new TypeReference<Set<SyncopeGrantedAuthority>>() {
-                    });
+                        new TypeReference<>() {
+                        });
                 } catch (Throwable t) {
                     LOG.error("Could not read stored authorities", t);
                 }
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 5137116..5479da1 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
@@ -108,7 +108,7 @@
     public ActionsPanel<CamelRouteTO> getActions(final IModel<CamelRouteTO> model) {
         final ActionsPanel<CamelRouteTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<CamelRouteTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -118,7 +118,7 @@
 
                 utilityModal.header(Model.of(route.getKey()));
                 utilityModal.setContent(new XMLEditorPanel(
-                        utilityModal, new PropertyModel<String>(route, "content"), filtered, pageRef) {
+                    utilityModal, new PropertyModel<>(route, "content"), filtered, pageRef) {
 
                     private static final long serialVersionUID = 5488080606102212554L;
 
diff --git a/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchUtils.java b/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchUtils.java
index 490a457..c6ac60c 100644
--- a/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchUtils.java
+++ b/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchUtils.java
@@ -31,6 +31,7 @@
 import org.apache.syncope.core.persistence.api.dao.UserDAO;
 import org.apache.syncope.core.persistence.api.entity.Any;
 import org.apache.syncope.core.persistence.api.entity.PlainAttr;
+import org.apache.syncope.core.persistence.api.entity.PlainAttrValue;
 import org.apache.syncope.core.persistence.api.entity.Privilege;
 import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject;
 import org.apache.syncope.core.persistence.api.entity.group.Group;
@@ -226,7 +227,7 @@
 
         for (PlainAttr<?> plainAttr : any.getPlainAttrs()) {
             List<Object> values = plainAttr.getValues().stream().
-                    map(value -> value.getValue()).collect(Collectors.toList());
+                    map(PlainAttrValue::getValue).collect(Collectors.toList());
 
             if (plainAttr.getUniqueValue() != null) {
                 values.add(plainAttr.getUniqueValue().getValue());
diff --git a/ext/flowable/client-common-ui/src/main/java/org/apache/syncope/ext/client/common/ui/panels/UserRequestFormPanel.java b/ext/flowable/client-common-ui/src/main/java/org/apache/syncope/ext/client/common/ui/panels/UserRequestFormPanel.java
index fae7b83..cb5e8ec 100644
--- a/ext/flowable/client-common-ui/src/main/java/org/apache/syncope/ext/client/common/ui/panels/UserRequestFormPanel.java
+++ b/ext/flowable/client-common-ui/src/main/java/org/apache/syncope/ext/client/common/ui/panels/UserRequestFormPanel.java
@@ -61,7 +61,7 @@
     public UserRequestFormPanel(final String id, final UserRequestForm form, final boolean showDetails) {
         super(id);
 
-        IModel<List<UserRequestFormProperty>> formProps = new LoadableDetachableModel<List<UserRequestFormProperty>>() {
+        IModel<List<UserRequestFormProperty>> formProps = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 3169142472626817508L;
 
@@ -71,12 +71,12 @@
             }
         };
 
-        ListView<UserRequestFormProperty> propView = new ListView<UserRequestFormProperty>("propView", formProps) {
+        ListView<UserRequestFormProperty> propView = new ListView<>("propView", formProps) {
 
             private static final long serialVersionUID = 9101744072914090143L;
 
             @Override
-            @SuppressWarnings({ "unchecked", "rawtypes" })
+            @SuppressWarnings({"unchecked", "rawtypes"})
             protected void populateItem(final ListItem<UserRequestFormProperty> item) {
                 final UserRequestFormProperty prop = item.getModelObject();
 
@@ -92,8 +92,8 @@
                             @Override
                             public String getObject() {
                                 return StringUtils.isBlank(prop.getValue())
-                                        ? null
-                                        : prop.getValue().equals("true") ? "Yes" : "No";
+                                    ? null
+                                    : prop.getValue().equals("true") ? "Yes" : "No";
                             }
 
                             @Override
@@ -106,7 +106,7 @@
 
                     case Date:
                         FastDateFormat formatter = FastDateFormat.getInstance(prop.getDatePattern());
-                        field = new AjaxDateTimeFieldPanel("value", label, new PropertyModel<Date>(prop, "value") {
+                        field = new AjaxDateTimeFieldPanel("value", label, new PropertyModel<>(prop, "value") {
 
                             private static final long serialVersionUID = -3743432456095828573L;
 
@@ -114,8 +114,8 @@
                             public Date getObject() {
                                 try {
                                     return StringUtils.isBlank(prop.getValue())
-                                            ? null
-                                            : formatter.parse(prop.getValue());
+                                        ? null
+                                        : formatter.parse(prop.getValue());
                                 } catch (ParseException e) {
                                     LOG.error("Unparsable date: {}", prop.getValue(), e);
                                     return null;
@@ -132,47 +132,47 @@
 
                     case Enum:
                         field = new AjaxDropDownChoicePanel(
-                                "value", label, new PropertyModel<String>(prop, "value"), false).
-                                setChoiceRenderer(new MapChoiceRenderer(prop.getEnumValues().stream().
-                                        collect(Collectors.toMap(
-                                                UserRequestFormPropertyValue::getKey,
-                                                UserRequestFormPropertyValue::getValue)))).
-                                setChoices(prop.getEnumValues().stream().
-                                        map(UserRequestFormPropertyValue::getKey).collect(Collectors.toList()));
+                            "value", label, new PropertyModel<String>(prop, "value"), false).
+                            setChoiceRenderer(new MapChoiceRenderer(prop.getEnumValues().stream().
+                                collect(Collectors.toMap(
+                                    UserRequestFormPropertyValue::getKey,
+                                    UserRequestFormPropertyValue::getValue)))).
+                            setChoices(prop.getEnumValues().stream().
+                                map(UserRequestFormPropertyValue::getKey).collect(Collectors.toList()));
                         break;
 
                     case Dropdown:
                         field = new AjaxDropDownChoicePanel(
-                                "value", label, new PropertyModel<String>(prop, "value"), false).
-                                setChoiceRenderer(new MapChoiceRenderer(prop.getDropdownValues().stream().
-                                        collect(Collectors.toMap(
-                                                UserRequestFormPropertyValue::getKey,
-                                                UserRequestFormPropertyValue::getValue)))).
-                                setChoices(prop.getDropdownValues().stream().
-                                        map(UserRequestFormPropertyValue::getKey).collect(Collectors.toList()));
+                            "value", label, new PropertyModel<String>(prop, "value"), false).
+                            setChoiceRenderer(new MapChoiceRenderer(prop.getDropdownValues().stream().
+                                collect(Collectors.toMap(
+                                    UserRequestFormPropertyValue::getKey,
+                                    UserRequestFormPropertyValue::getValue)))).
+                            setChoices(prop.getDropdownValues().stream().
+                                map(UserRequestFormPropertyValue::getKey).collect(Collectors.toList()));
                         break;
 
                     case Long:
                         field = new AjaxSpinnerFieldPanel.Builder<Long>().build(
-                                "value",
-                                label,
-                                Long.class,
-                                new PropertyModel<Long>(prop, "value") {
+                            "value",
+                            label,
+                            Long.class,
+                            new PropertyModel<>(prop, "value") {
 
-                            private static final long serialVersionUID = -7688359318035249200L;
+                                private static final long serialVersionUID = -7688359318035249200L;
 
-                            @Override
-                            public Long getObject() {
-                                return StringUtils.isBlank(prop.getValue())
+                                @Override
+                                public Long getObject() {
+                                    return StringUtils.isBlank(prop.getValue())
                                         ? null
                                         : NumberUtils.toLong(prop.getValue());
-                            }
+                                }
 
-                            @Override
-                            public void setObject(final Long object) {
-                                prop.setValue(String.valueOf(object));
-                            }
-                        });
+                                @Override
+                                public void setObject(final Long object) {
+                                    prop.setValue(String.valueOf(object));
+                                }
+                            });
                         break;
 
                     case Password:
@@ -194,7 +194,7 @@
             }
         };
 
-        AjaxLink<String> userDetails = new AjaxLink<String>("userDetails") {
+        AjaxLink<String> userDetails = new AjaxLink<>("userDetails") {
 
             private static final long serialVersionUID = -4804368561204623354L;
 
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/BpmnProcessDirectoryPanel.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/BpmnProcessDirectoryPanel.java
index 79639cb..e1a2d61 100644
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/BpmnProcessDirectoryPanel.java
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/BpmnProcessDirectoryPanel.java
@@ -114,7 +114,7 @@
         }, false);
         NewBpmnProcess newBpmnProcess = new NewBpmnProcess("newBpmnProcess", container, pageRef);
         addInnerObject(newBpmnProcess);
-        AjaxLink<Void> newBpmnProcessLink = new AjaxLink<Void>("add") {
+        AjaxLink<Void> newBpmnProcessLink = new AjaxLink<>("add") {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
@@ -165,7 +165,7 @@
     public ActionsPanel<BpmnProcess> getActions(final IModel<BpmnProcess> model) {
         final ActionsPanel<BpmnProcess> panel = super.getActions(model);
 
-        panel.add(new ActionLink<BpmnProcess>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -184018732772021627L;
 
@@ -174,7 +174,7 @@
                 final IModel<String> wfDefinition = new Model<>();
                 try {
                     wfDefinition.setObject(IOUtils.toString(BpmnProcessRestClient.getDefinition(
-                            MediaType.APPLICATION_XML_TYPE, model.getObject().getKey())));
+                        MediaType.APPLICATION_XML_TYPE, model.getObject().getKey())));
                 } catch (IOException e) {
                     LOG.error("Could not get workflow definition", e);
                 }
@@ -189,7 +189,7 @@
                         if (StringUtils.isNotBlank(wfDefinition.getObject())) {
                             try {
                                 BpmnProcessRestClient.setDefinition(MediaType.APPLICATION_XML_TYPE,
-                                        model.getObject().getKey(), wfDefinition.getObject());
+                                    model.getObject().getKey(), wfDefinition.getObject());
                                 SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
 
                                 target.add(container);
@@ -207,7 +207,7 @@
             }
         }, ActionLink.ActionType.EDIT, FlowableEntitlement.BPMN_PROCESS_SET);
 
-        panel.add(new ActionLink<BpmnProcess>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = 3109256773218160485L;
 
@@ -215,13 +215,13 @@
             public void onClick(final AjaxRequestTarget target, final BpmnProcess ignore) {
                 modal.header(Model.of(model.getObject().getKey()));
                 modal.setContent(new ImageModalPanel<>(
-                        modal, BpmnProcessRestClient.getDiagram(model.getObject().getKey()), pageRef));
+                    modal, BpmnProcessRestClient.getDiagram(model.getObject().getKey()), pageRef));
                 modal.show(target);
                 target.add(modal);
             }
         }, ActionLink.ActionType.VIEW, FlowableEntitlement.BPMN_PROCESS_GET);
 
-        panel.add(new ActionLink<BpmnProcess>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -184018732772021627L;
 
@@ -245,7 +245,7 @@
             }
         }, ActionLink.ActionType.EXTERNAL_EDITOR, FlowableEntitlement.BPMN_PROCESS_SET);
 
-        panel.add(new ActionLink<BpmnProcess>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestDirectoryPanel.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestDirectoryPanel.java
index 7b76dfc..bf2fe7c 100644
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestDirectoryPanel.java
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestDirectoryPanel.java
@@ -126,7 +126,7 @@
     public ActionsPanel<UserRequest> getActions(final IModel<UserRequest> model) {
         ActionsPanel<UserRequest> panel = super.getActions(model);
 
-        panel.add(new ActionLink<UserRequest>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDirectoryPanel.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDirectoryPanel.java
index 8078a9d..cf67b6f 100644
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDirectoryPanel.java
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/panels/UserRequestFormDirectoryPanel.java
@@ -67,7 +67,7 @@
 
     private static final String PREF_USER_REQUEST_FORM_PAGINATOR_ROWS = "userrequestform.paginator.rows";
 
-    private final BaseModal<UserRequestForm> manageFormModal = new BaseModal<UserRequestForm>("outer") {
+    private final BaseModal<UserRequestForm> manageFormModal = new BaseModal<>("outer") {
 
         private static final long serialVersionUID = 389935548143327858L;
 
@@ -129,7 +129,7 @@
 
     @Override
     protected ActionLinksTogglePanel<UserRequestForm> actionTogglePanel() {
-        return new ActionLinksTogglePanel<UserRequestForm>(Constants.OUTER, pageRef) {
+        return new ActionLinksTogglePanel<>(Constants.OUTER, pageRef) {
 
             private static final long serialVersionUID = -7688359318035249200L;
 
@@ -137,7 +137,7 @@
             public void updateHeader(final AjaxRequestTarget target, final Serializable object) {
                 if (object instanceof UserRequestForm) {
                     setHeader(target, StringUtils.abbreviate(
-                            ((UserRequestForm) object).getUsername(), HEADER_FIRST_ABBREVIATION));
+                        ((UserRequestForm) object).getUsername(), HEADER_FIRST_ABBREVIATION));
                 } else {
                     super.updateHeader(target, object);
                 }
@@ -149,7 +149,7 @@
     public ActionsPanel<UserRequestForm> getActions(final IModel<UserRequestForm> model) {
         final ActionsPanel<UserRequestForm> panel = super.getActions(model);
 
-        panel.add(new ActionLink<UserRequestForm>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -167,7 +167,7 @@
 
         }, ActionLink.ActionType.CLAIM, FlowableEntitlement.USER_REQUEST_FORM_CLAIM);
 
-        panel.add(new ActionLink<UserRequestForm>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -4496313424398213416L;
 
@@ -187,12 +187,12 @@
             @Override
             protected boolean statusCondition(final UserRequestForm modelObject) {
                 return SyncopeConsoleSession.get().getSelfTO().getUsername().
-                        equals(model.getObject().getAssignee());
+                    equals(model.getObject().getAssignee());
             }
 
         }, ActionLink.ActionType.UNCLAIM, FlowableEntitlement.USER_REQUEST_FORM_UNCLAIM);
 
-        panel.add(new ActionLink<UserRequestForm>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -201,7 +201,7 @@
                 manageFormModal.setFormModel(new CompoundPropertyModel<>(model.getObject()));
 
                 target.add(manageFormModal.setContent(new UserRequestFormModal(manageFormModal, pageRef, model.
-                        getObject()) {
+                    getObject()) {
 
                     private static final long serialVersionUID = 5546519445061007248L;
 
@@ -225,13 +225,13 @@
             @Override
             protected boolean statusCondition(final UserRequestForm modelObject) {
                 return SyncopeConsoleSession.get().getSelfTO().getUsername().
-                        equals(model.getObject().getAssignee());
+                    equals(model.getObject().getAssignee());
             }
 
         }, ActionLink.ActionType.MANAGE_APPROVAL, FlowableEntitlement.USER_REQUEST_FORM_SUBMIT);
 
         // SYNCOPE-1200 edit user while in approval state
-        panel.add(new ActionLink<UserRequestForm>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -259,13 +259,13 @@
                 }
 
                 AjaxWizard.EditItemActionEvent<UserTO> editItemActionEvent =
-                        new AjaxWizard.EditItemActionEvent<>(newUserTO, target);
+                    new AjaxWizard.EditItemActionEvent<>(newUserTO, target);
                 editItemActionEvent.forceModalPanel(AnyLayoutUtils.newLayoutInfo(
-                        newUserTO,
-                        AnyTypeRestClient.read(AnyTypeKind.USER.name()).getClasses(),
-                        AnyLayoutUtils.fetch(List.of(AnyTypeKind.USER.name())).getUser(),
-                        pageRef).
-                        build(BaseModal.CONTENT_ID, 0, AjaxWizard.Mode.EDIT_APPROVAL));
+                    newUserTO,
+                    AnyTypeRestClient.read(AnyTypeKind.USER.name()).getClasses(),
+                    AnyLayoutUtils.fetch(List.of(AnyTypeKind.USER.name())).getUser(),
+                    pageRef).
+                    build(BaseModal.CONTENT_ID, 0, AjaxWizard.Mode.EDIT_APPROVAL));
 
                 send(UserRequestFormDirectoryPanel.this, Broadcast.EXACT, editItemActionEvent);
             }
@@ -273,7 +273,7 @@
             @Override
             protected boolean statusCondition(final UserRequestForm modelObject) {
                 return SyncopeConsoleSession.get().getSelfTO().getUsername().
-                        equals(model.getObject().getAssignee());
+                    equals(model.getObject().getAssignee());
             }
 
         }, ActionLink.ActionType.EDIT_APPROVAL, FlowableEntitlement.USER_REQUEST_FORM_SUBMIT);
diff --git a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.java b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.java
index 1bf5e18..429af25 100644
--- a/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.java
+++ b/ext/flowable/client-console/src/main/java/org/apache/syncope/client/console/widgets/UserRequestFormsWidget.java
@@ -93,7 +93,7 @@
 
     @Override
     protected IModel<List<UserRequestForm>> getLatestAlerts() {
-        return new ListModel<UserRequestForm>() {
+        return new ListModel<>() {
 
             private static final long serialVersionUID = -2583290457773357445L;
 
@@ -102,7 +102,7 @@
                 List<UserRequestForm> updatedForms;
                 if (SyncopeConsoleSession.get().owns(FlowableEntitlement.USER_REQUEST_FORM_LIST)) {
                     updatedForms = UserRequestRestClient.listForms(
-                            null, 1, MAX_SIZE, new SortParam<>("createTime", true));
+                        null, 1, MAX_SIZE, new SortParam<>("createTime", true));
                 } else {
                     updatedForms = Collections.emptyList();
                 }
diff --git a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/pages/Flowable.java b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/pages/Flowable.java
index bffc121..ae6f9d2 100644
--- a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/pages/Flowable.java
+++ b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/pages/Flowable.java
@@ -70,7 +70,7 @@
         container.setOutputMarkupId(true);
 
         // list of accordions containing request form (if any) and delete button
-        urDataView = new DataView<UserRequest>("userRequests", new URDataProvider(rowsPerPage, "bpmnProcess")) {
+        urDataView = new DataView<>("userRequests", new URDataProvider(rowsPerPage, "bpmnProcess")) {
 
             private static final long serialVersionUID = -5002600396458362774L;
 
@@ -78,7 +78,7 @@
             protected void populateItem(final Item<UserRequest> item) {
                 final UserRequest userRequest = item.getModelObject();
                 item.add(new Accordion("userRequestDetails", Collections.<ITab>singletonList(new AbstractTab(
-                        new StringResourceModel("user.requests.accordion", container, Model.of(userRequest))) {
+                    new StringResourceModel("user.requests.accordion", container, Model.of(userRequest))) {
 
                     private static final long serialVersionUID = 1037272333056449378L;
 
@@ -86,7 +86,7 @@
                     public WebMarkupContainer getPanel(final String panelId) {
                         // find the form associated to the current request, if any
                         return new UserRequestDetails(
-                                panelId, userRequest, container, notificationPanel, getPageReference());
+                            panelId, userRequest, container, notificationPanel, getPageReference());
                     }
                 }), Model.of(-1)).setOutputMarkupId(true));
             }
@@ -97,7 +97,7 @@
         container.add(urDataView);
         container.add(new AjaxPagingNavigator("navigator", urDataView));
 
-        AjaxLink<Void> startButton = new AjaxLink<Void>("start") {
+        AjaxLink<Void> startButton = new AjaxLink<>("start") {
 
             private static final long serialVersionUID = 3669569969172391336L;
 
@@ -109,7 +109,7 @@
                     } catch (Exception e) {
                         LOG.error("Unable to start bpmnProcess [{}]", bpmnProcessModel.getObject(), e);
                         SyncopeEnduserSession.get()
-                                .error(String.format("Unable to start bpmnProcess [%s]", e.getMessage()));
+                            .error(String.format("Unable to start bpmnProcess [%s]", e.getMessage()));
                         notificationPanel.refresh(target);
                     }
                     target.add(container);
diff --git a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/rest/UserRequestRestClient.java b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/rest/UserRequestRestClient.java
index 8f31e56..316a72f 100644
--- a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/rest/UserRequestRestClient.java
+++ b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/rest/UserRequestRestClient.java
@@ -82,8 +82,8 @@
 
     public static ProvisioningResult<UserTO> submitForm(final UserRequestForm form) {
         return getService(UserRequestService.class).submitForm(form).readEntity(
-                new GenericType<ProvisioningResult<UserTO>>() {
-        });
+            new GenericType<>() {
+            });
     }
 
     public static void startRequest(final String bpmnProcess, final String user) {
diff --git a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/ext/client/common/ui/panels/UserRequestFormPanel.java b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/ext/client/common/ui/panels/UserRequestFormPanel.java
index f83c9a8..c93fefd 100644
--- a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/ext/client/common/ui/panels/UserRequestFormPanel.java
+++ b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/ext/client/common/ui/panels/UserRequestFormPanel.java
@@ -65,7 +65,7 @@
             final boolean showDetails) {
         super(id);
 
-        IModel<List<UserRequestFormProperty>> formProps = new LoadableDetachableModel<List<UserRequestFormProperty>>() {
+        IModel<List<UserRequestFormProperty>> formProps = new LoadableDetachableModel<>() {
 
             private static final long serialVersionUID = 3169142472626817508L;
 
@@ -75,12 +75,12 @@
             }
         };
 
-        ListView<UserRequestFormProperty> propView = new ListView<UserRequestFormProperty>("propView", formProps) {
+        ListView<UserRequestFormProperty> propView = new ListView<>("propView", formProps) {
 
             private static final long serialVersionUID = 9101744072914090143L;
 
             @Override
-            @SuppressWarnings({ "unchecked", "rawtypes" })
+            @SuppressWarnings({"unchecked", "rawtypes"})
             protected void populateItem(final ListItem<UserRequestFormProperty> item) {
                 final UserRequestFormProperty prop = item.getModelObject();
 
@@ -96,8 +96,8 @@
                             @Override
                             public String getObject() {
                                 return StringUtils.isBlank(prop.getValue())
-                                        ? null
-                                        : prop.getValue().equals("true") ? "Yes" : "No";
+                                    ? null
+                                    : prop.getValue().equals("true") ? "Yes" : "No";
                             }
 
                             @Override
@@ -105,12 +105,12 @@
                                 prop.setValue(String.valueOf(object.equalsIgnoreCase("yes")));
                             }
 
-                        }, false).setChoices(Arrays.asList(new String[] { "Yes", "No" }));
+                        }, false).setChoices(Arrays.asList(new String[]{"Yes", "No"}));
                         break;
 
                     case Date:
                         FastDateFormat formatter = FastDateFormat.getInstance(prop.getDatePattern());
-                        field = new AjaxDateTimeFieldPanel("value", label, new PropertyModel<Date>(prop, "value") {
+                        field = new AjaxDateTimeFieldPanel("value", label, new PropertyModel<>(prop, "value") {
 
                             private static final long serialVersionUID = -3743432456095828573L;
 
@@ -118,8 +118,8 @@
                             public Date getObject() {
                                 try {
                                     return StringUtils.isBlank(prop.getValue())
-                                            ? null
-                                            : formatter.parse(prop.getValue());
+                                        ? null
+                                        : formatter.parse(prop.getValue());
                                 } catch (ParseException e) {
                                     LOG.error("Unparsable date: {}", prop.getValue(), e);
                                     return null;
@@ -136,47 +136,47 @@
 
                     case Enum:
                         field = new AjaxDropDownChoicePanel(
-                                "value", label, new PropertyModel<String>(prop, "value"), false).
-                                setChoiceRenderer(new MapChoiceRenderer(prop.getEnumValues().stream().
-                                        collect(Collectors.toMap(
-                                                UserRequestFormPropertyValue::getKey,
-                                                UserRequestFormPropertyValue::getValue)))).
-                                setChoices(new ArrayList<>(prop.getEnumValues().stream().
-                                        map(UserRequestFormPropertyValue::getKey).collect(Collectors.toList())));
+                            "value", label, new PropertyModel<String>(prop, "value"), false).
+                            setChoiceRenderer(new MapChoiceRenderer(prop.getEnumValues().stream().
+                                collect(Collectors.toMap(
+                                    UserRequestFormPropertyValue::getKey,
+                                    UserRequestFormPropertyValue::getValue)))).
+                            setChoices(new ArrayList<>(prop.getEnumValues().stream().
+                                map(UserRequestFormPropertyValue::getKey).collect(Collectors.toList())));
                         break;
 
                     case Dropdown:
                         field = new AjaxDropDownChoicePanel(
-                                "value", label, new PropertyModel<String>(prop, "value"), false).
-                                setChoiceRenderer(new MapChoiceRenderer(prop.getDropdownValues().stream().
-                                        collect(Collectors.toMap(
-                                                UserRequestFormPropertyValue::getKey,
-                                                UserRequestFormPropertyValue::getValue)))).
-                                setChoices(prop.getDropdownValues().stream().
-                                        map(UserRequestFormPropertyValue::getKey).collect(Collectors.toList()));
+                            "value", label, new PropertyModel<String>(prop, "value"), false).
+                            setChoiceRenderer(new MapChoiceRenderer(prop.getDropdownValues().stream().
+                                collect(Collectors.toMap(
+                                    UserRequestFormPropertyValue::getKey,
+                                    UserRequestFormPropertyValue::getValue)))).
+                            setChoices(prop.getDropdownValues().stream().
+                                map(UserRequestFormPropertyValue::getKey).collect(Collectors.toList()));
                         break;
 
                     case Long:
                         field = new AjaxSpinnerFieldPanel.Builder<Long>().build(
-                                "value",
-                                label,
-                                Long.class,
-                                new PropertyModel<Long>(prop, "value") {
+                            "value",
+                            label,
+                            Long.class,
+                            new PropertyModel<>(prop, "value") {
 
-                            private static final long serialVersionUID = -7688359318035249200L;
+                                private static final long serialVersionUID = -7688359318035249200L;
 
-                            @Override
-                            public Long getObject() {
-                                return StringUtils.isBlank(prop.getValue())
+                                @Override
+                                public Long getObject() {
+                                    return StringUtils.isBlank(prop.getValue())
                                         ? null
                                         : NumberUtils.toLong(prop.getValue());
-                            }
+                                }
 
-                            @Override
-                            public void setObject(final Long object) {
-                                prop.setValue(String.valueOf(object));
-                            }
-                        });
+                                @Override
+                                public void setObject(final Long object) {
+                                    prop.setValue(String.valueOf(object));
+                                }
+                            });
                         break;
 
                     case Password:
@@ -198,7 +198,7 @@
             }
         };
 
-        AjaxLink<String> userDetails = new AjaxLink<String>("userDetails") {
+        AjaxLink<String> userDetails = new AjaxLink<>("userDetails") {
 
             private static final long serialVersionUID = -4804368561204623354L;
 
diff --git a/ext/flowable/common-lib/src/test/java/org/apache/syncope/common/lib/to/SerializationTest.java b/ext/flowable/common-lib/src/test/java/org/apache/syncope/common/lib/to/SerializationTest.java
index c3024db..eb7e2f0 100644
--- a/ext/flowable/common-lib/src/test/java/org/apache/syncope/common/lib/to/SerializationTest.java
+++ b/ext/flowable/common-lib/src/test/java/org/apache/syncope/common/lib/to/SerializationTest.java
@@ -73,8 +73,8 @@
         objectMapper().writeValue(writer, original);
 
         PagedResult<UserRequestForm> actual = objectMapper().readValue(writer.toString(),
-                new TypeReference<PagedResult<UserRequestForm>>() {
-        });
+            new TypeReference<>() {
+            });
         assertEquals(original, actual);
     }
 }
diff --git a/ext/oidcc4ui/client-common-ui/src/main/java/org/apache/syncope/client/ui/commons/panels/AbstractOIDCSSOLoginFormPanel.java b/ext/oidcc4ui/client-common-ui/src/main/java/org/apache/syncope/client/ui/commons/panels/AbstractOIDCSSOLoginFormPanel.java
index b8b6974..2b9cd33 100644
--- a/ext/oidcc4ui/client-common-ui/src/main/java/org/apache/syncope/client/ui/commons/panels/AbstractOIDCSSOLoginFormPanel.java
+++ b/ext/oidcc4ui/client-common-ui/src/main/java/org/apache/syncope/client/ui/commons/panels/AbstractOIDCSSOLoginFormPanel.java
@@ -52,7 +52,7 @@
         AjaxDropDownChoicePanel<OIDCC4UIProviderTO> ops =
                 new AjaxDropDownChoicePanel<>("ops", "OpenID Connect", model, false);
         ops.setChoices(available);
-        ops.setChoiceRenderer(new IChoiceRenderer<OIDCC4UIProviderTO>() {
+        ops.setChoiceRenderer(new IChoiceRenderer<>() {
 
             private static final long serialVersionUID = 1814750973898916102L;
 
@@ -68,10 +68,10 @@
 
             @Override
             public OIDCC4UIProviderTO getObject(final String id,
-                    final IModel<? extends List<? extends OIDCC4UIProviderTO>> choices) {
+                                                final IModel<? extends List<? extends OIDCC4UIProviderTO>> choices) {
 
                 return choices.getObject().stream().
-                        filter(object -> object.getName().equals(id)).findFirst().orElse(null);
+                    filter(object -> object.getName().equals(id)).findFirst().orElse(null);
             }
         });
 
diff --git a/ext/oidcc4ui/client-console/src/main/java/org/apache/syncope/client/console/panels/OIDCProvidersDirectoryPanel.java b/ext/oidcc4ui/client-console/src/main/java/org/apache/syncope/client/console/panels/OIDCProvidersDirectoryPanel.java
index f65bb0e..7f71a99 100644
--- a/ext/oidcc4ui/client-console/src/main/java/org/apache/syncope/client/console/panels/OIDCProvidersDirectoryPanel.java
+++ b/ext/oidcc4ui/client-console/src/main/java/org/apache/syncope/client/console/panels/OIDCProvidersDirectoryPanel.java
@@ -91,7 +91,7 @@
 
         modal.size(Modal.Size.Large);
 
-        templateModal = new BaseModal<Serializable>("outer") {
+        templateModal = new BaseModal<>("outer") {
 
             private static final long serialVersionUID = 5787433530654262016L;
 
@@ -115,7 +115,7 @@
 
     @Override
     protected ActionLinksTogglePanel<OIDCC4UIProviderTO> actionTogglePanel() {
-        return new ActionLinksTogglePanel<OIDCC4UIProviderTO>(Constants.OUTER, pageRef) {
+        return new ActionLinksTogglePanel<>(Constants.OUTER, pageRef) {
 
             private static final long serialVersionUID = -7688359318035249200L;
 
@@ -123,7 +123,7 @@
             public void updateHeader(final AjaxRequestTarget target, final Serializable object) {
                 if (object instanceof OIDCC4UIProviderTO) {
                     setHeader(target,
-                            StringUtils.abbreviate(((OIDCC4UIProviderTO) object).getName(), HEADER_FIRST_ABBREVIATION));
+                        StringUtils.abbreviate(((OIDCC4UIProviderTO) object).getName(), HEADER_FIRST_ABBREVIATION));
                 } else {
                     super.updateHeader(target, object);
                 }
@@ -157,7 +157,7 @@
     public ActionsPanel<OIDCC4UIProviderTO> getActions(final IModel<OIDCC4UIProviderTO> model) {
         final ActionsPanel<OIDCC4UIProviderTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<OIDCC4UIProviderTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -165,12 +165,12 @@
             public void onClick(final AjaxRequestTarget target, final OIDCC4UIProviderTO ignore) {
                 OIDCC4UIProviderTO object = OIDCProviderRestClient.read(model.getObject().getKey());
                 send(OIDCProvidersDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(object, target));
+                    new AjaxWizard.EditItemActionEvent<>(object, target));
                 modal.header(Model.of(StringUtils.capitalize(("Edit " + object.getName()))));
             }
         }, ActionLink.ActionType.EDIT, OIDC4UIEntitlement.OP_UPDATE);
 
-        panel.add(new ActionLink<OIDCC4UIProviderTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = 8557679125857348178L;
 
@@ -179,10 +179,10 @@
                 final OIDCC4UIProviderTO object = OIDCProviderRestClient.read(model.getObject().getKey());
 
                 UserTemplateWizardBuilder builder = new UserTemplateWizardBuilder(
-                        object.getUserTemplate(),
-                        AnyTypeRestClient.read(AnyTypeKind.USER.name()).getClasses(),
-                        new UserFormLayoutInfo(),
-                        pageRef) {
+                    object.getUserTemplate(),
+                    AnyTypeRestClient.read(AnyTypeKind.USER.name()).getClasses(),
+                    new UserFormLayoutInfo(),
+                    pageRef) {
 
                     private static final long serialVersionUID = -7978723352517770634L;
 
@@ -195,7 +195,7 @@
                     }
                 };
                 templateModal.header(Model.of(StringUtils.capitalize(
-                        new StringResourceModel("template.title", OIDCProvidersDirectoryPanel.this).getString())));
+                    new StringResourceModel("template.title", OIDCProvidersDirectoryPanel.this).getString())));
                 templateModal.setContent(builder.build(BaseModal.CONTENT_ID));
                 templateModal.show(true);
                 target.add(templateModal);
@@ -203,7 +203,7 @@
             }
         }, ActionLink.ActionType.TEMPLATE, OIDC4UIEntitlement.OP_UPDATE);
 
-        panel.add(new ActionLink<OIDCC4UIProviderTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -5467832321897812767L;
 
@@ -238,9 +238,9 @@
                 newItemEvent.getTarget().ifPresent(target -> target.add(templateModal.setContent(modalPanel)));
                 templateModal.show(true);
             } else if (newItemEvent instanceof AjaxWizard.NewItemCancelEvent) {
-                newItemEvent.getTarget().ifPresent(target -> templateModal.close(target));
+                newItemEvent.getTarget().ifPresent(templateModal::close);
             } else if (newItemEvent instanceof AjaxWizard.NewItemFinishEvent) {
-                newItemEvent.getTarget().ifPresent(target -> templateModal.close(target));
+                newItemEvent.getTarget().ifPresent(templateModal::close);
             }
         }
     }
diff --git a/ext/oidcc4ui/client-console/src/main/java/org/apache/syncope/client/console/wizards/OIDCProviderWizardBuilder.java b/ext/oidcc4ui/client-console/src/main/java/org/apache/syncope/client/console/wizards/OIDCProviderWizardBuilder.java
index fa8b535..42b82ef 100644
--- a/ext/oidcc4ui/client-console/src/main/java/org/apache/syncope/client/console/wizards/OIDCProviderWizardBuilder.java
+++ b/ext/oidcc4ui/client-console/src/main/java/org/apache/syncope/client/console/wizards/OIDCProviderWizardBuilder.java
@@ -61,14 +61,14 @@
 
     private final OIDCProvidersDirectoryPanel directoryPanel;
 
-    private final IModel<List<String>> opActions = new LoadableDetachableModel<List<String>>() {
+    private final IModel<List<String>> opActions = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = 5275935387613157437L;
 
         @Override
         protected List<String> load() {
             return ImplementationRestClient.list(OIDCClientImplementationType.OP_ACTIONS).stream().
-                    map(EntityTO::getKey).sorted().collect(Collectors.toList());
+                map(EntityTO::getKey).sorted().collect(Collectors.toList());
         }
     };
 
diff --git a/ext/saml2sp4ui/client-common-ui/src/main/java/org/apache/syncope/client/ui/commons/panels/AbstractSAMLSSOLoginFormPanel.java b/ext/saml2sp4ui/client-common-ui/src/main/java/org/apache/syncope/client/ui/commons/panels/AbstractSAMLSSOLoginFormPanel.java
index 7ca6cd4..97c5aa3 100644
--- a/ext/saml2sp4ui/client-common-ui/src/main/java/org/apache/syncope/client/ui/commons/panels/AbstractSAMLSSOLoginFormPanel.java
+++ b/ext/saml2sp4ui/client-common-ui/src/main/java/org/apache/syncope/client/ui/commons/panels/AbstractSAMLSSOLoginFormPanel.java
@@ -53,7 +53,7 @@
         AjaxDropDownChoicePanel<SAML2SP4UIIdPTO> idps =
                 new AjaxDropDownChoicePanel<>("idps", "SAML 2.0", model, false);
         idps.setChoices(available);
-        idps.setChoiceRenderer(new IChoiceRenderer<SAML2SP4UIIdPTO>() {
+        idps.setChoiceRenderer(new IChoiceRenderer<>() {
 
             private static final long serialVersionUID = 1814750973898916102L;
 
@@ -69,10 +69,10 @@
 
             @Override
             public SAML2SP4UIIdPTO getObject(
-                    final String id, final IModel<? extends List<? extends SAML2SP4UIIdPTO>> choices) {
+                final String id, final IModel<? extends List<? extends SAML2SP4UIIdPTO>> choices) {
 
                 return choices.getObject().stream().
-                        filter(idp -> idp.getEntityID().equals(id)).findFirst().orElse(null);
+                    filter(idp -> idp.getEntityID().equals(id)).findFirst().orElse(null);
             }
         });
         idps.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
diff --git a/ext/saml2sp4ui/client-console/src/main/java/org/apache/syncope/client/console/panels/SAML2IdPsDirectoryPanel.java b/ext/saml2sp4ui/client-console/src/main/java/org/apache/syncope/client/console/panels/SAML2IdPsDirectoryPanel.java
index 2cb375b..fc0735b 100644
--- a/ext/saml2sp4ui/client-console/src/main/java/org/apache/syncope/client/console/panels/SAML2IdPsDirectoryPanel.java
+++ b/ext/saml2sp4ui/client-console/src/main/java/org/apache/syncope/client/console/panels/SAML2IdPsDirectoryPanel.java
@@ -103,7 +103,7 @@
         setWindowClosedReloadCallback(metadataModal);
         metadataModal.size(Modal.Size.Large);
 
-        templateModal = new BaseModal<Serializable>("outer") {
+        templateModal = new BaseModal<>("outer") {
 
             private static final long serialVersionUID = 5787433530654262016L;
 
@@ -121,7 +121,7 @@
 
         final ImportMetadata importMetadata = new ImportMetadata("importMetadata", container, pageRef);
         addInnerObject(importMetadata);
-        AjaxLink<Void> importMetadataLink = new AjaxLink<Void>("add") {
+        AjaxLink<Void> importMetadataLink = new AjaxLink<>("add") {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
@@ -140,7 +140,7 @@
 
     @Override
     protected ActionLinksTogglePanel<SAML2SP4UIIdPTO> actionTogglePanel() {
-        return new ActionLinksTogglePanel<SAML2SP4UIIdPTO>(Constants.OUTER, pageRef) {
+        return new ActionLinksTogglePanel<>(Constants.OUTER, pageRef) {
 
             private static final long serialVersionUID = -7688359318035249200L;
 
@@ -148,7 +148,7 @@
             public void updateHeader(final AjaxRequestTarget target, final Serializable modelObject) {
                 if (modelObject instanceof SAML2SP4UIIdPTO) {
                     setHeader(target, StringUtils.abbreviate(
-                            ((SAML2SP4UIIdPTO) modelObject).getName(), HEADER_FIRST_ABBREVIATION));
+                        ((SAML2SP4UIIdPTO) modelObject).getName(), HEADER_FIRST_ABBREVIATION));
                 } else {
                     super.updateHeader(target, modelObject);
                 }
@@ -185,7 +185,7 @@
     public ActionsPanel<SAML2SP4UIIdPTO> getActions(final IModel<SAML2SP4UIIdPTO> model) {
         final ActionsPanel<SAML2SP4UIIdPTO> panel = super.getActions(model);
 
-        panel.add(new ActionLink<SAML2SP4UIIdPTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -7978723352517770645L;
 
@@ -194,15 +194,15 @@
                 SAML2SP4UIIdPTO object = SAML2IdPsRestClient.read(model.getObject().getKey());
                 metadataModal.header(Model.of(object.getName() + " - Metadata"));
                 metadataModal.setContent(new XMLEditorPanel(
-                        metadataModal,
-                        Model.of(new String(Base64.getMimeDecoder().decode(object.getMetadata()))),
-                        true,
-                        pageRef));
+                    metadataModal,
+                    Model.of(new String(Base64.getMimeDecoder().decode(object.getMetadata()))),
+                    true,
+                    pageRef));
                 metadataModal.show(true);
                 target.add(metadataModal);
             }
         }, ActionLink.ActionType.HTML, SAML2SP4UIEntitlement.IDP_READ);
-        panel.add(new ActionLink<SAML2SP4UIIdPTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -210,10 +210,10 @@
             public void onClick(final AjaxRequestTarget target, final SAML2SP4UIIdPTO ignore) {
                 SAML2SP4UIIdPTO object = SAML2IdPsRestClient.read(model.getObject().getKey());
                 send(SAML2IdPsDirectoryPanel.this, Broadcast.EXACT,
-                        new AjaxWizard.EditItemActionEvent<>(object, target));
+                    new AjaxWizard.EditItemActionEvent<>(object, target));
             }
         }, ActionLink.ActionType.EDIT, SAML2SP4UIEntitlement.IDP_UPDATE);
-        panel.add(new ActionLink<SAML2SP4UIIdPTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -3722207913631435501L;
 
@@ -222,10 +222,10 @@
                 final SAML2SP4UIIdPTO object = SAML2IdPsRestClient.read(model.getObject().getKey());
 
                 UserTemplateWizardBuilder builder = new UserTemplateWizardBuilder(
-                        object.getUserTemplate(),
-                        AnyTypeRestClient.read(AnyTypeKind.USER.name()).getClasses(),
-                        new UserFormLayoutInfo(),
-                        pageRef) {
+                    object.getUserTemplate(),
+                    AnyTypeRestClient.read(AnyTypeKind.USER.name()).getClasses(),
+                    new UserFormLayoutInfo(),
+                    pageRef) {
 
                     private static final long serialVersionUID = -7978723352517770634L;
 
@@ -238,14 +238,14 @@
                     }
                 };
                 templateModal.header(Model.of(StringUtils.capitalize(
-                        new StringResourceModel("template.title", SAML2IdPsDirectoryPanel.this).getString())));
+                    new StringResourceModel("template.title", SAML2IdPsDirectoryPanel.this).getString())));
                 templateModal.setContent(builder.build(BaseModal.CONTENT_ID));
                 templateModal.show(true);
                 target.add(templateModal);
 
             }
         }, ActionLink.ActionType.TEMPLATE, SAML2SP4UIEntitlement.IDP_UPDATE);
-        panel.add(new ActionLink<SAML2SP4UIIdPTO>() {
+        panel.add(new ActionLink<>() {
 
             private static final long serialVersionUID = -5467832321897812767L;
 
@@ -281,9 +281,9 @@
                 newItemEvent.getTarget().ifPresent(target -> target.add(templateModal.setContent(modalPanel)));
                 templateModal.show(true);
             } else if (newItemEvent instanceof AjaxWizard.NewItemCancelEvent) {
-                newItemEvent.getTarget().ifPresent(target -> templateModal.close(target));
+                newItemEvent.getTarget().ifPresent(templateModal::close);
             } else if (newItemEvent instanceof AjaxWizard.NewItemFinishEvent) {
-                newItemEvent.getTarget().ifPresent(target -> templateModal.close(target));
+                newItemEvent.getTarget().ifPresent(templateModal::close);
             }
         }
     }
diff --git a/ext/saml2sp4ui/client-console/src/main/java/org/apache/syncope/client/console/wizards/SAML2IdPWizardBuilder.java b/ext/saml2sp4ui/client-console/src/main/java/org/apache/syncope/client/console/wizards/SAML2IdPWizardBuilder.java
index 22dba7a..6c86b80 100644
--- a/ext/saml2sp4ui/client-console/src/main/java/org/apache/syncope/client/console/wizards/SAML2IdPWizardBuilder.java
+++ b/ext/saml2sp4ui/client-console/src/main/java/org/apache/syncope/client/console/wizards/SAML2IdPWizardBuilder.java
@@ -64,25 +64,25 @@
 
     private final SAML2IdPsDirectoryPanel directoryPanel;
 
-    private final IModel<List<String>> idpActions = new LoadableDetachableModel<List<String>>() {
+    private final IModel<List<String>> idpActions = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = 5275935387613157437L;
 
         @Override
         protected List<String> load() {
             return ImplementationRestClient.list(SAML2SP4UIImplementationType.IDP_ACTIONS).stream().
-                    map(EntityTO::getKey).sorted().collect(Collectors.toList());
+                map(EntityTO::getKey).sorted().collect(Collectors.toList());
         }
     };
 
-    private final IModel<List<String>> requestedAuthnContextProviders = new LoadableDetachableModel<List<String>>() {
+    private final IModel<List<String>> requestedAuthnContextProviders = new LoadableDetachableModel<>() {
 
         private static final long serialVersionUID = 4659376149825914247L;
 
         @Override
         protected List<String> load() {
             return ImplementationRestClient.list(SAML2SP4UIImplementationType.REQUESTED_AUTHN_CONTEXT_PROVIDER).
-                    stream().map(EntityTO::getKey).sorted().collect(Collectors.toList());
+                stream().map(EntityTO::getKey).sorted().collect(Collectors.toList());
         }
     };
 
@@ -181,7 +181,7 @@
             actions.setOutputMarkupId(true);
             fields.add(actions);
 
-            add(new ListView<Component>("fields", fields) {
+            add(new ListView<>("fields", fields) {
 
                 private static final long serialVersionUID = -9180479401817023838L;
 
diff --git a/ext/scimv2/client-console/src/main/java/org/apache/syncope/client/console/panels/SCIMConfAccordionContainer.java b/ext/scimv2/client-console/src/main/java/org/apache/syncope/client/console/panels/SCIMConfAccordionContainer.java
index 2c1dcea..de727ec 100644
--- a/ext/scimv2/client-console/src/main/java/org/apache/syncope/client/console/panels/SCIMConfAccordionContainer.java
+++ b/ext/scimv2/client-console/src/main/java/org/apache/syncope/client/console/panels/SCIMConfAccordionContainer.java
@@ -31,7 +31,7 @@
     SCIMConfAccordionContainer(final String id, final List<AjaxTextFieldPanel> fieldPanels) {
         super(id);
 
-        add(new ListView<AjaxTextFieldPanel>("accordionContainer", fieldPanels) {
+        add(new ListView<>("accordionContainer", fieldPanels) {
 
             private static final long serialVersionUID = 4949588177564901031L;
 
diff --git a/ext/scimv2/client-console/src/main/java/org/apache/syncope/client/console/panels/SCIMConfEnterpriseUserPanel.java b/ext/scimv2/client-console/src/main/java/org/apache/syncope/client/console/panels/SCIMConfEnterpriseUserPanel.java
index 35e00d0..0df39fa 100644
--- a/ext/scimv2/client-console/src/main/java/org/apache/syncope/client/console/panels/SCIMConfEnterpriseUserPanel.java
+++ b/ext/scimv2/client-console/src/main/java/org/apache/syncope/client/console/panels/SCIMConfEnterpriseUserPanel.java
@@ -57,97 +57,97 @@
 
         AjaxTextFieldPanel costCenterPanel =
                 new AjaxTextFieldPanel("costCenter", "costCenter",
-                        new PropertyModel<String>("costCenter", "costCenter") {
+                    new PropertyModel<>("costCenter", "costCenter") {
 
-                    private static final long serialVersionUID = -6427731218492117883L;
+                        private static final long serialVersionUID = -6427731218492117883L;
 
-                    @Override
-                    public String getObject() {
-                        return scimEnterpriseUserConf.getCostCenter();
-                    }
+                        @Override
+                        public String getObject() {
+                            return scimEnterpriseUserConf.getCostCenter();
+                        }
 
-                    @Override
-                    public void setObject(final String object) {
-                        scimEnterpriseUserConf.setCostCenter(object);
-                    }
+                        @Override
+                        public void setObject(final String object) {
+                            scimEnterpriseUserConf.setCostCenter(object);
+                        }
 
-                });
+                    });
         costCenterPanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel departmentPanel =
                 new AjaxTextFieldPanel("department", "department",
-                        new PropertyModel<String>("department", "department") {
+                    new PropertyModel<>("department", "department") {
 
-                    private static final long serialVersionUID = -6427731218492117883L;
+                        private static final long serialVersionUID = -6427731218492117883L;
 
-                    @Override
-                    public String getObject() {
-                        return scimEnterpriseUserConf.getDepartment();
-                    }
+                        @Override
+                        public String getObject() {
+                            return scimEnterpriseUserConf.getDepartment();
+                        }
 
-                    @Override
-                    public void setObject(final String object) {
-                        scimEnterpriseUserConf.setDepartment(object);
-                    }
+                        @Override
+                        public void setObject(final String object) {
+                            scimEnterpriseUserConf.setDepartment(object);
+                        }
 
-                });
+                    });
         departmentPanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel divisionPanel =
                 new AjaxTextFieldPanel("division", "division",
-                        new PropertyModel<String>("division", "division") {
+                    new PropertyModel<>("division", "division") {
 
-                    private static final long serialVersionUID = -6427731218492117883L;
+                        private static final long serialVersionUID = -6427731218492117883L;
 
-                    @Override
-                    public String getObject() {
-                        return scimEnterpriseUserConf.getDivision();
-                    }
+                        @Override
+                        public String getObject() {
+                            return scimEnterpriseUserConf.getDivision();
+                        }
 
-                    @Override
-                    public void setObject(final String object) {
-                        scimEnterpriseUserConf.setDivision(object);
-                    }
+                        @Override
+                        public void setObject(final String object) {
+                            scimEnterpriseUserConf.setDivision(object);
+                        }
 
-                });
+                    });
         divisionPanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel employeeNumberPanel =
                 new AjaxTextFieldPanel("employeeNumber", "employeeNumber",
-                        new PropertyModel<String>("employeeNumber", "employeeNumber") {
+                    new PropertyModel<>("employeeNumber", "employeeNumber") {
 
-                    private static final long serialVersionUID = -6427731218492117883L;
+                        private static final long serialVersionUID = -6427731218492117883L;
 
-                    @Override
-                    public String getObject() {
-                        return scimEnterpriseUserConf.getEmployeeNumber();
-                    }
+                        @Override
+                        public String getObject() {
+                            return scimEnterpriseUserConf.getEmployeeNumber();
+                        }
 
-                    @Override
-                    public void setObject(final String object) {
-                        scimEnterpriseUserConf.setEmployeeNumber(object);
-                    }
+                        @Override
+                        public void setObject(final String object) {
+                            scimEnterpriseUserConf.setEmployeeNumber(object);
+                        }
 
-                });
+                    });
         employeeNumberPanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel organizationPanel =
                 new AjaxTextFieldPanel("organization", "organization",
-                        new PropertyModel<String>("organization", "organization") {
+                    new PropertyModel<>("organization", "organization") {
 
-                    private static final long serialVersionUID = -6427731218492117883L;
+                        private static final long serialVersionUID = -6427731218492117883L;
 
-                    @Override
-                    public String getObject() {
-                        return scimEnterpriseUserConf.getOrganization();
-                    }
+                        @Override
+                        public String getObject() {
+                            return scimEnterpriseUserConf.getOrganization();
+                        }
 
-                    @Override
-                    public void setObject(final String object) {
-                        scimEnterpriseUserConf.setOrganization(object);
-                    }
+                        @Override
+                        public void setObject(final String object) {
+                            scimEnterpriseUserConf.setOrganization(object);
+                        }
 
-                });
+                    });
         organizationPanel.setChoices(plainSchemaNames);
 
         // manager
@@ -186,40 +186,40 @@
 
         AjaxTextFieldPanel managerKeyPanel =
                 new AjaxTextFieldPanel("accordionContent", "manager.key",
-                        new PropertyModel<String>(scimEnterpriseUserConf.getManager(), "accordionContent") {
+                    new PropertyModel<>(scimEnterpriseUserConf.getManager(), "accordionContent") {
 
-                    private static final long serialVersionUID = -6427731218492117883L;
+                        private static final long serialVersionUID = -6427731218492117883L;
 
-                    @Override
-                    public String getObject() {
-                        return scimEnterpriseUserConf.getManager().getKey();
-                    }
+                        @Override
+                        public String getObject() {
+                            return scimEnterpriseUserConf.getManager().getKey();
+                        }
 
-                    @Override
-                    public void setObject(final String object) {
-                        scimEnterpriseUserConf.getManager().setKey(object);
-                    }
+                        @Override
+                        public void setObject(final String object) {
+                            scimEnterpriseUserConf.getManager().setKey(object);
+                        }
 
-                });
+                    });
         managerKeyPanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel managerDisplaNamePanel =
                 new AjaxTextFieldPanel("accordionContent", "manager.displayName",
-                        new PropertyModel<String>(scimEnterpriseUserConf.getManager(), "accordionContent") {
+                    new PropertyModel<>(scimEnterpriseUserConf.getManager(), "accordionContent") {
 
-                    private static final long serialVersionUID = -6427731218492117883L;
+                        private static final long serialVersionUID = -6427731218492117883L;
 
-                    @Override
-                    public String getObject() {
-                        return scimEnterpriseUserConf.getManager().getDisplayName();
-                    }
+                        @Override
+                        public String getObject() {
+                            return scimEnterpriseUserConf.getManager().getDisplayName();
+                        }
 
-                    @Override
-                    public void setObject(final String object) {
-                        scimEnterpriseUserConf.getManager().setDisplayName(object);
-                    }
+                        @Override
+                        public void setObject(final String object) {
+                            scimEnterpriseUserConf.getManager().setDisplayName(object);
+                        }
 
-                });
+                    });
         managerDisplaNamePanel.setChoices(plainSchemaNames);
 
         panelList.add(managerKeyPanel);
diff --git a/ext/scimv2/client-console/src/main/java/org/apache/syncope/client/console/panels/SCIMConfGeneralPanel.java b/ext/scimv2/client-console/src/main/java/org/apache/syncope/client/console/panels/SCIMConfGeneralPanel.java
index d6d6449..bea8c1e 100644
--- a/ext/scimv2/client-console/src/main/java/org/apache/syncope/client/console/panels/SCIMConfGeneralPanel.java
+++ b/ext/scimv2/client-console/src/main/java/org/apache/syncope/client/console/panels/SCIMConfGeneralPanel.java
@@ -42,7 +42,7 @@
         SCIMGeneralConf scimGeneralConf = scimConf.getGeneralConf();
 
         AjaxDateTimeFieldPanel creationDatePanel =
-                new AjaxDateTimeFieldPanel("creationDate", "creationDate", new Model<Date>() {
+                new AjaxDateTimeFieldPanel("creationDate", "creationDate", new Model<>() {
 
                     private static final long serialVersionUID = 7075312408615929880L;
 
@@ -59,7 +59,7 @@
         creationDatePanel.setEnabled(false);
 
         AjaxDateTimeFieldPanel lastChangeDatePanel =
-                new AjaxDateTimeFieldPanel("lastChangeDate", "lastChangeDate", new Model<Date>() {
+                new AjaxDateTimeFieldPanel("lastChangeDate", "lastChangeDate", new Model<>() {
 
                     private static final long serialVersionUID = 7075312408615929880L;
 
@@ -77,85 +77,85 @@
 
         AjaxTextFieldPanel bulkMaxOperationsPanel =
                 new AjaxTextFieldPanel("bulkMaxOperations", "bulkMaxOperations",
-                        new PropertyModel<String>("bulkMaxOperations", "bulkMaxOperations") {
+                    new PropertyModel<>("bulkMaxOperations", "bulkMaxOperations") {
 
-                    private static final long serialVersionUID = -6427731218492117883L;
+                        private static final long serialVersionUID = -6427731218492117883L;
 
-                    @Override
-                    public String getObject() {
-                        return String.valueOf(scimGeneralConf.getBulkMaxOperations());
-                    }
-
-                    @Override
-                    public void setObject(final String object) {
-                        try {
-                            scimGeneralConf.setBulkMaxOperations(Integer.parseInt(object));
-                        } catch (NumberFormatException e) {
-                            LOG.error("Invalid value provided for 'bulkMaxOperations': {}", object, e);
+                        @Override
+                        public String getObject() {
+                            return String.valueOf(scimGeneralConf.getBulkMaxOperations());
                         }
-                    }
-                });
+
+                        @Override
+                        public void setObject(final String object) {
+                            try {
+                                scimGeneralConf.setBulkMaxOperations(Integer.parseInt(object));
+                            } catch (NumberFormatException e) {
+                                LOG.error("Invalid value provided for 'bulkMaxOperations': {}", object, e);
+                            }
+                        }
+                    });
         bulkMaxOperationsPanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel bulkMaxMaxPayloadSizePanel =
                 new AjaxTextFieldPanel("bulkMaxMaxPayloadSize", "bulkMaxMaxPayloadSize",
-                        new PropertyModel<String>("bulkMaxMaxPayloadSize", "bulkMaxMaxPayloadSize") {
+                    new PropertyModel<>("bulkMaxMaxPayloadSize", "bulkMaxMaxPayloadSize") {
 
-                    private static final long serialVersionUID = -6427731218492117883L;
+                        private static final long serialVersionUID = -6427731218492117883L;
 
-                    @Override
-                    public String getObject() {
-                        return String.valueOf(scimGeneralConf.getBulkMaxPayloadSize());
-                    }
-
-                    @Override
-                    public void setObject(final String object) {
-                        try {
-                            scimGeneralConf.setBulkMaxPayloadSize(Integer.parseInt(object));
-                        } catch (NumberFormatException e) {
-                            LOG.error("Invalid value provided for 'bulkMaxPayloadSize': {}", object, e);
+                        @Override
+                        public String getObject() {
+                            return String.valueOf(scimGeneralConf.getBulkMaxPayloadSize());
                         }
-                    }
-                });
+
+                        @Override
+                        public void setObject(final String object) {
+                            try {
+                                scimGeneralConf.setBulkMaxPayloadSize(Integer.parseInt(object));
+                            } catch (NumberFormatException e) {
+                                LOG.error("Invalid value provided for 'bulkMaxPayloadSize': {}", object, e);
+                            }
+                        }
+                    });
         bulkMaxMaxPayloadSizePanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel filterMaxResultsPanel =
                 new AjaxTextFieldPanel("filterMaxResults", "filterMaxResults",
-                        new PropertyModel<String>("filterMaxResults", "filterMaxResults") {
+                    new PropertyModel<>("filterMaxResults", "filterMaxResults") {
 
-                    private static final long serialVersionUID = -6427731218492117883L;
+                        private static final long serialVersionUID = -6427731218492117883L;
 
-                    @Override
-                    public String getObject() {
-                        return String.valueOf(scimGeneralConf.getFilterMaxResults());
-                    }
-
-                    @Override
-                    public void setObject(final String object) {
-                        try {
-                            scimGeneralConf.setFilterMaxResults(Integer.parseInt(object));
-                        } catch (NumberFormatException e) {
-                            LOG.error("Invalid value provided for 'filterMaxResults': {}", object, e);
+                        @Override
+                        public String getObject() {
+                            return String.valueOf(scimGeneralConf.getFilterMaxResults());
                         }
-                    }
-                });
+
+                        @Override
+                        public void setObject(final String object) {
+                            try {
+                                scimGeneralConf.setFilterMaxResults(Integer.parseInt(object));
+                            } catch (NumberFormatException e) {
+                                LOG.error("Invalid value provided for 'filterMaxResults': {}", object, e);
+                            }
+                        }
+                    });
         filterMaxResultsPanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel eTagValuePanel = new AjaxTextFieldPanel("eTagValue", "eTagValue",
-                new PropertyModel<String>("eTagValue", "eTagValue") {
+            new PropertyModel<>("eTagValue", "eTagValue") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return scimGeneralConf.getETagValue();
-            }
+                @Override
+                public String getObject() {
+                    return scimGeneralConf.getETagValue();
+                }
 
-            @Override
-            public void setObject(final String object) {
-                // nothing to do
-            }
-        });
+                @Override
+                public void setObject(final String object) {
+                    // nothing to do
+                }
+            });
         eTagValuePanel.setEnabled(false);
 
         add(creationDatePanel);
diff --git a/ext/scimv2/client-console/src/main/java/org/apache/syncope/client/console/panels/SCIMConfPanel.java b/ext/scimv2/client-console/src/main/java/org/apache/syncope/client/console/panels/SCIMConfPanel.java
index 8164588..c1b76cb 100644
--- a/ext/scimv2/client-console/src/main/java/org/apache/syncope/client/console/panels/SCIMConfPanel.java
+++ b/ext/scimv2/client-console/src/main/java/org/apache/syncope/client/console/panels/SCIMConfPanel.java
@@ -61,7 +61,7 @@
         tabbedPanel.setSelectedTab(0);
         addInnerObject(tabbedPanel);
 
-        AjaxLink<String> saveButton = new AjaxLink<String>("saveButton") {
+        AjaxLink<String> saveButton = new AjaxLink<>("saveButton") {
 
             private static final long serialVersionUID = -7978723352517770644L;
 
diff --git a/ext/scimv2/client-console/src/main/java/org/apache/syncope/client/console/panels/SCIMConfUserPanel.java b/ext/scimv2/client-console/src/main/java/org/apache/syncope/client/console/panels/SCIMConfUserPanel.java
index 202abd0..44060b8 100644
--- a/ext/scimv2/client-console/src/main/java/org/apache/syncope/client/console/panels/SCIMConfUserPanel.java
+++ b/ext/scimv2/client-console/src/main/java/org/apache/syncope/client/console/panels/SCIMConfUserPanel.java
@@ -71,147 +71,147 @@
         settings.setCssClassName("custom-autocomplete-box");
 
         AjaxTextFieldPanel displayNamePanel = new AjaxTextFieldPanel("displayName", "displayName",
-                new PropertyModel<String>("displayName", "displayName") {
+            new PropertyModel<>("displayName", "displayName") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return scimUserConf.getDisplayName();
-            }
+                @Override
+                public String getObject() {
+                    return scimUserConf.getDisplayName();
+                }
 
-            @Override
-            public void setObject(final String object) {
-                scimUserConf.setDisplayName(object);
-            }
+                @Override
+                public void setObject(final String object) {
+                    scimUserConf.setDisplayName(object);
+                }
 
-        });
+            });
         displayNamePanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel localePanel = new AjaxTextFieldPanel("locale", "locale",
-                new PropertyModel<String>("locale", "locale") {
+            new PropertyModel<>("locale", "locale") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return scimUserConf.getLocale();
-            }
+                @Override
+                public String getObject() {
+                    return scimUserConf.getLocale();
+                }
 
-            @Override
-            public void setObject(final String object) {
-                scimUserConf.setLocale(object);
-            }
+                @Override
+                public void setObject(final String object) {
+                    scimUserConf.setLocale(object);
+                }
 
-        });
+            });
         localePanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel nickNamePanel = new AjaxTextFieldPanel("nickName", "nickName",
-                new PropertyModel<String>("nickName", "nickName") {
+            new PropertyModel<>("nickName", "nickName") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return scimUserConf.getNickName();
-            }
+                @Override
+                public String getObject() {
+                    return scimUserConf.getNickName();
+                }
 
-            @Override
-            public void setObject(final String object) {
-                scimUserConf.setNickName(object);
-            }
+                @Override
+                public void setObject(final String object) {
+                    scimUserConf.setNickName(object);
+                }
 
-        });
+            });
         nickNamePanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel preferredLanguagePanel = new AjaxTextFieldPanel("preferredLanguage", "preferredLanguage",
-                new PropertyModel<String>("preferredLanguage", "preferredLanguage") {
+            new PropertyModel<>("preferredLanguage", "preferredLanguage") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return scimUserConf.getPreferredLanguage();
-            }
+                @Override
+                public String getObject() {
+                    return scimUserConf.getPreferredLanguage();
+                }
 
-            @Override
-            public void setObject(final String object) {
-                scimUserConf.setPreferredLanguage(object);
-            }
+                @Override
+                public void setObject(final String object) {
+                    scimUserConf.setPreferredLanguage(object);
+                }
 
-        });
+            });
         preferredLanguagePanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel profileUrlPanel = new AjaxTextFieldPanel("profileUrl", "profileUrl",
-                new PropertyModel<String>("profileUrl", "profileUrl") {
+            new PropertyModel<>("profileUrl", "profileUrl") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return scimUserConf.getProfileUrl();
-            }
+                @Override
+                public String getObject() {
+                    return scimUserConf.getProfileUrl();
+                }
 
-            @Override
-            public void setObject(final String object) {
-                scimUserConf.setProfileUrl(object);
-            }
+                @Override
+                public void setObject(final String object) {
+                    scimUserConf.setProfileUrl(object);
+                }
 
-        });
+            });
         profileUrlPanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel timezonePanel = new AjaxTextFieldPanel("timezone", "timezone",
-                new PropertyModel<String>("timezone", "timezone") {
+            new PropertyModel<>("timezone", "timezone") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return scimUserConf.getTimezone();
-            }
+                @Override
+                public String getObject() {
+                    return scimUserConf.getTimezone();
+                }
 
-            @Override
-            public void setObject(final String object) {
-                scimUserConf.setTimezone(object);
-            }
+                @Override
+                public void setObject(final String object) {
+                    scimUserConf.setTimezone(object);
+                }
 
-        });
+            });
         timezonePanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel titlePanel = new AjaxTextFieldPanel("title", "title",
-                new PropertyModel<String>("title", "title") {
+            new PropertyModel<>("title", "title") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return scimUserConf.getTitle();
-            }
+                @Override
+                public String getObject() {
+                    return scimUserConf.getTitle();
+                }
 
-            @Override
-            public void setObject(final String object) {
-                scimUserConf.setTitle(object);
-            }
+                @Override
+                public void setObject(final String object) {
+                    scimUserConf.setTitle(object);
+                }
 
-        });
+            });
         titlePanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel userTypePanel = new AjaxTextFieldPanel("userType", "userType",
-                new PropertyModel<String>("userType", "userType") {
+            new PropertyModel<>("userType", "userType") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return scimUserConf.getUserType();
-            }
+                @Override
+                public String getObject() {
+                    return scimUserConf.getUserType();
+                }
 
-            @Override
-            public void setObject(final String object) {
-                scimUserConf.setUserType(object);
-            }
+                @Override
+                public void setObject(final String object) {
+                    scimUserConf.setUserType(object);
+                }
 
-        });
+            });
         userTypePanel.setChoices(plainSchemaNames);
 
         // name
@@ -346,111 +346,111 @@
         final List<AjaxTextFieldPanel> panelList = new ArrayList<>();
 
         AjaxTextFieldPanel nameFamilyNamePanel = new AjaxTextFieldPanel("accordionContent", "name.familyName",
-                new PropertyModel<String>(scimUserConf.getName(), "accordionContent") {
+            new PropertyModel<>(scimUserConf.getName(), "accordionContent") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return scimUserConf.getName().getFamilyName();
-            }
+                @Override
+                public String getObject() {
+                    return scimUserConf.getName().getFamilyName();
+                }
 
-            @Override
-            public void setObject(final String object) {
-                scimUserConf.getName().setFamilyName(object);
-            }
+                @Override
+                public void setObject(final String object) {
+                    scimUserConf.getName().setFamilyName(object);
+                }
 
-        });
+            });
         nameFamilyNamePanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel nameFormattedPanel = new AjaxTextFieldPanel("accordionContent", "name.formatted",
-                new PropertyModel<String>(scimUserConf.getName(), "accordionContent") {
+            new PropertyModel<>(scimUserConf.getName(), "accordionContent") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return scimUserConf.getName().getFormatted();
-            }
+                @Override
+                public String getObject() {
+                    return scimUserConf.getName().getFormatted();
+                }
 
-            @Override
-            public void setObject(final String object) {
-                scimUserConf.getName().setFormatted(object);
-            }
+                @Override
+                public void setObject(final String object) {
+                    scimUserConf.getName().setFormatted(object);
+                }
 
-        });
+            });
         nameFormattedPanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel nameGivenNamePanel = new AjaxTextFieldPanel("accordionContent", "name.givenName",
-                new PropertyModel<String>(scimUserConf.getName(), "accordionContent") {
+            new PropertyModel<>(scimUserConf.getName(), "accordionContent") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return scimUserConf.getName().getGivenName();
-            }
+                @Override
+                public String getObject() {
+                    return scimUserConf.getName().getGivenName();
+                }
 
-            @Override
-            public void setObject(final String object) {
-                scimUserConf.getName().setGivenName(object);
-            }
+                @Override
+                public void setObject(final String object) {
+                    scimUserConf.getName().setGivenName(object);
+                }
 
-        });
+            });
         nameGivenNamePanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel nameHonorificPrefixPanel = new AjaxTextFieldPanel("accordionContent", "name.honorificPrefix",
-                new PropertyModel<String>(scimUserConf.getName(), "accordionContent") {
+            new PropertyModel<>(scimUserConf.getName(), "accordionContent") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return scimUserConf.getName().getHonorificPrefix();
-            }
+                @Override
+                public String getObject() {
+                    return scimUserConf.getName().getHonorificPrefix();
+                }
 
-            @Override
-            public void setObject(final String object) {
-                scimUserConf.getName().setHonorificPrefix(object);
-            }
+                @Override
+                public void setObject(final String object) {
+                    scimUserConf.getName().setHonorificPrefix(object);
+                }
 
-        });
+            });
         nameHonorificPrefixPanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel nameHonorificSuffixPanel = new AjaxTextFieldPanel("accordionContent", "name.honorificSuffix",
-                new PropertyModel<String>(scimUserConf.getName(), "accordionContent") {
+            new PropertyModel<>(scimUserConf.getName(), "accordionContent") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return scimUserConf.getName().getHonorificSuffix();
-            }
+                @Override
+                public String getObject() {
+                    return scimUserConf.getName().getHonorificSuffix();
+                }
 
-            @Override
-            public void setObject(final String object) {
-                scimUserConf.getName().setHonorificSuffix(object);
-            }
+                @Override
+                public void setObject(final String object) {
+                    scimUserConf.getName().setHonorificSuffix(object);
+                }
 
-        });
+            });
         nameHonorificSuffixPanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel nameMiddleNamePanel = new AjaxTextFieldPanel("accordionContent", "name.middleName",
-                new PropertyModel<String>(scimUserConf.getName(), "accordionContent") {
+            new PropertyModel<>(scimUserConf.getName(), "accordionContent") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return scimUserConf.getName().getMiddleName();
-            }
+                @Override
+                public String getObject() {
+                    return scimUserConf.getName().getMiddleName();
+                }
 
-            @Override
-            public void setObject(final String object) {
-                scimUserConf.getName().setMiddleName(object);
-            }
+                @Override
+                public void setObject(final String object) {
+                    scimUserConf.getName().setMiddleName(object);
+                }
 
-        });
+            });
         nameMiddleNamePanel.setChoices(plainSchemaNames);
 
         panelList.add(nameFamilyNamePanel);
@@ -472,57 +472,57 @@
         final String fieldName = panelId + '.' + canonicalType.name();
 
         AjaxTextFieldPanel displayPanel = new AjaxTextFieldPanel("accordionContent", fieldName + ".display",
-                new PropertyModel<String>(complex, "accordionContent") {
+            new PropertyModel<>(complex, "accordionContent") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return complex.getDisplay();
-            }
+                @Override
+                public String getObject() {
+                    return complex.getDisplay();
+                }
 
-            @Override
-            public void setObject(final String object) {
-                complex.setDisplay(object);
-            }
+                @Override
+                public void setObject(final String object) {
+                    complex.setDisplay(object);
+                }
 
-        });
+            });
         displayPanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel valuePanel = new AjaxTextFieldPanel("accordionContent", fieldName + ".value",
-                new PropertyModel<String>(complex, "accordionContent") {
+            new PropertyModel<>(complex, "accordionContent") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return complex.getValue();
-            }
+                @Override
+                public String getObject() {
+                    return complex.getValue();
+                }
 
-            @Override
-            public void setObject(final String object) {
-                complex.setValue(object);
-            }
+                @Override
+                public void setObject(final String object) {
+                    complex.setValue(object);
+                }
 
-        });
+            });
         valuePanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel primaryPanel = new AjaxTextFieldPanel("accordionContent", fieldName + ".primary",
-                new PropertyModel<String>(complex, "accordionContent") {
+            new PropertyModel<>(complex, "accordionContent") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return String.valueOf(complex.isPrimary());
-            }
+                @Override
+                public String getObject() {
+                    return String.valueOf(complex.isPrimary());
+                }
 
-            @Override
-            public void setObject(final String object) {
-                complex.setPrimary(Boolean.valueOf(object));
-            }
+                @Override
+                public void setObject(final String object) {
+                    complex.setPrimary(Boolean.valueOf(object));
+                }
 
-        });
+            });
         primaryPanel.setChoices(List.of("true", "false"));
 
         panelList.add(displayPanel);
@@ -541,112 +541,112 @@
         final String fieldName = "addresses." + canonicalType.name();
 
         AjaxTextFieldPanel addressCountryPanel = new AjaxTextFieldPanel("accordionContent", fieldName + ".country",
-                new PropertyModel<String>(address, "accordionContent") {
+            new PropertyModel<>(address, "accordionContent") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return address.getCountry();
-            }
+                @Override
+                public String getObject() {
+                    return address.getCountry();
+                }
 
-            @Override
-            public void setObject(final String object) {
-                address.setCountry(object);
-            }
+                @Override
+                public void setObject(final String object) {
+                    address.setCountry(object);
+                }
 
-        });
+            });
         addressCountryPanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel addressFormattedPanel = new AjaxTextFieldPanel("accordionContent", fieldName + ".formatted",
-                new PropertyModel<String>(address, "accordionContent") {
+            new PropertyModel<>(address, "accordionContent") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return address.getFormatted();
-            }
+                @Override
+                public String getObject() {
+                    return address.getFormatted();
+                }
 
-            @Override
-            public void setObject(final String object) {
-                address.setFormatted(object);
-            }
+                @Override
+                public void setObject(final String object) {
+                    address.setFormatted(object);
+                }
 
-        });
+            });
         addressFormattedPanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel addressLocalityPanel = new AjaxTextFieldPanel("accordionContent", fieldName + ".locality",
-                new PropertyModel<String>(address, "accordionContent") {
+            new PropertyModel<>(address, "accordionContent") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return address.getLocality();
-            }
+                @Override
+                public String getObject() {
+                    return address.getLocality();
+                }
 
-            @Override
-            public void setObject(final String object) {
-                address.setLocality(object);
-            }
+                @Override
+                public void setObject(final String object) {
+                    address.setLocality(object);
+                }
 
-        });
+            });
         addressLocalityPanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel addressRegionPanel = new AjaxTextFieldPanel("accordionContent", fieldName + ".region",
-                new PropertyModel<String>(address, "accordionContent") {
+            new PropertyModel<>(address, "accordionContent") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return address.getRegion();
-            }
+                @Override
+                public String getObject() {
+                    return address.getRegion();
+                }
 
-            @Override
-            public void setObject(final String object) {
-                address.setRegion(object);
-            }
+                @Override
+                public void setObject(final String object) {
+                    address.setRegion(object);
+                }
 
-        });
+            });
         addressRegionPanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel addressPostalCodePanel =
                 new AjaxTextFieldPanel("accordionContent", fieldName + ".postalCode",
-                        new PropertyModel<String>(address, "accordionContent") {
+                    new PropertyModel<>(address, "accordionContent") {
 
-                    private static final long serialVersionUID = -6427731218492117883L;
+                        private static final long serialVersionUID = -6427731218492117883L;
 
-                    @Override
-                    public String getObject() {
-                        return address.getPostalCode();
-                    }
+                        @Override
+                        public String getObject() {
+                            return address.getPostalCode();
+                        }
 
-                    @Override
-                    public void setObject(final String object) {
-                        address.setPostalCode(object);
-                    }
+                        @Override
+                        public void setObject(final String object) {
+                            address.setPostalCode(object);
+                        }
 
-                });
+                    });
         addressPostalCodePanel.setChoices(plainSchemaNames);
 
         AjaxTextFieldPanel addressPrimaryPanel = new AjaxTextFieldPanel("accordionContent", fieldName + ".primary",
-                new PropertyModel<String>(address, "accordionContent") {
+            new PropertyModel<>(address, "accordionContent") {
 
-            private static final long serialVersionUID = -6427731218492117883L;
+                private static final long serialVersionUID = -6427731218492117883L;
 
-            @Override
-            public String getObject() {
-                return String.valueOf(address.isPrimary());
-            }
+                @Override
+                public String getObject() {
+                    return String.valueOf(address.isPrimary());
+                }
 
-            @Override
-            public void setObject(final String object) {
-                address.setPrimary(Boolean.valueOf(object));
-            }
+                @Override
+                public void setObject(final String object) {
+                    address.setPrimary(Boolean.valueOf(object));
+                }
 
-        });
+            });
         addressPrimaryPanel.setChoices(List.of("true", "false"));
 
         panelList.add(addressCountryPanel);
diff --git a/fit/build-tools/src/main/java/org/apache/directory/server/core/normalization/NormalizationInterceptor.java b/fit/build-tools/src/main/java/org/apache/directory/server/core/normalization/NormalizationInterceptor.java
index 139b6e2..d6d3e5a 100644
--- a/fit/build-tools/src/main/java/org/apache/directory/server/core/normalization/NormalizationInterceptor.java
+++ b/fit/build-tools/src/main/java/org/apache/directory/server/core/normalization/NormalizationInterceptor.java
@@ -396,7 +396,7 @@
         if ( filter == null )
         {
             LOG.warn( "undefined filter based on undefined attributeType not evaluted at all.  Returning empty enumeration." );
-            return new EntryFilteringCursorImpl( new EmptyCursor<Entry>(), searchContext, schemaManager );
+            return new EntryFilteringCursorImpl(new EmptyCursor<>(), searchContext, schemaManager );
         }
 
         // Normalize the filter
@@ -405,7 +405,7 @@
         if ( filter == null )
         {
             LOG.warn( "undefined filter based on undefined attributeType not evaluted at all.  Returning empty enumeration." );
-            return new EntryFilteringCursorImpl( new EmptyCursor<Entry>(), searchContext, schemaManager );
+            return new EntryFilteringCursorImpl(new EmptyCursor<>(), searchContext, schemaManager );
         }
 
         // We now have to remove the (ObjectClass=*) filter if it's present, and to add the scope filter
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 dcebb97..48cea40 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
@@ -89,66 +89,66 @@
             List.of(SyncopeJWTSSOProvider.class, CustomJWTSSOProvider.class));
 
     private static final Map<Class<? extends ReportletConf>, Class<? extends Reportlet>> REPORTLET_CLASSES =
-            new HashMap<Class<? extends ReportletConf>, Class<? extends Reportlet>>() {
+        new HashMap<>() {
 
-        private static final long serialVersionUID = 3109256773218160485L;
+            private static final long serialVersionUID = 3109256773218160485L;
 
-        {
-            put(AuditReportletConf.class, AuditReportlet.class);
-            put(ReconciliationReportletConf.class, ReconciliationReportlet.class);
-            put(GroupReportletConf.class, GroupReportlet.class);
-            put(UserReportletConf.class, UserReportlet.class);
-            put(StaticReportletConf.class, StaticReportlet.class);
-        }
-    };
+            {
+                put(AuditReportletConf.class, AuditReportlet.class);
+                put(ReconciliationReportletConf.class, ReconciliationReportlet.class);
+                put(GroupReportletConf.class, GroupReportlet.class);
+                put(UserReportletConf.class, UserReportlet.class);
+                put(StaticReportletConf.class, StaticReportlet.class);
+            }
+        };
 
     private static final Map<Class<? extends AccountRuleConf>, Class<? extends AccountRule>> ACCOUNT_RULE_CLASSES =
-            new HashMap<Class<? extends AccountRuleConf>, Class<? extends AccountRule>>() {
+        new HashMap<>() {
 
-        private static final long serialVersionUID = 3109256773218160485L;
+            private static final long serialVersionUID = 3109256773218160485L;
 
-        {
-            put(TestAccountRuleConf.class, TestAccountRule.class);
-            put(DefaultAccountRuleConf.class, DefaultAccountRule.class);
-        }
-    };
+            {
+                put(TestAccountRuleConf.class, TestAccountRule.class);
+                put(DefaultAccountRuleConf.class, DefaultAccountRule.class);
+            }
+        };
 
     private static final Map<Class<? extends PasswordRuleConf>, Class<? extends PasswordRule>> PASSWORD_RULE_CLASSES =
-            new HashMap<Class<? extends PasswordRuleConf>, Class<? extends PasswordRule>>() {
+        new HashMap<>() {
 
-        private static final long serialVersionUID = -6624291041977583649L;
+            private static final long serialVersionUID = -6624291041977583649L;
 
-        {
-            put(TestPasswordRuleConf.class, TestPasswordRule.class);
-            put(DefaultPasswordRuleConf.class, DefaultPasswordRule.class);
-            put(HaveIBeenPwnedPasswordRuleConf.class, HaveIBeenPwnedPasswordRule.class);
-        }
-    };
+            {
+                put(TestPasswordRuleConf.class, TestPasswordRule.class);
+                put(DefaultPasswordRuleConf.class, DefaultPasswordRule.class);
+                put(HaveIBeenPwnedPasswordRuleConf.class, HaveIBeenPwnedPasswordRule.class);
+            }
+        };
 
     private static final Map<
             Class<? extends PullCorrelationRuleConf>, Class<? extends PullCorrelationRule>> PULL_CR_CLASSES =
-            new HashMap<Class<? extends PullCorrelationRuleConf>, Class<? extends PullCorrelationRule>>() {
+        new HashMap<>() {
 
-        private static final long serialVersionUID = 3109256773218160485L;
+            private static final long serialVersionUID = 3109256773218160485L;
 
-        {
-            put(DummyPullCorrelationRuleConf.class, DummyPullCorrelationRule.class);
-            put(DefaultPullCorrelationRuleConf.class, DefaultPullCorrelationRule.class);
-            put(LinkedAccountSamplePullCorrelationRuleConf.class, LinkedAccountSamplePullCorrelationRule.class);
-        }
-    };
+            {
+                put(DummyPullCorrelationRuleConf.class, DummyPullCorrelationRule.class);
+                put(DefaultPullCorrelationRuleConf.class, DefaultPullCorrelationRule.class);
+                put(LinkedAccountSamplePullCorrelationRuleConf.class, LinkedAccountSamplePullCorrelationRule.class);
+            }
+        };
 
     private static final Map<
             Class<? extends PushCorrelationRuleConf>, Class<? extends PushCorrelationRule>> PUSH_CR_CLASSES =
-            new HashMap<Class<? extends PushCorrelationRuleConf>, Class<? extends PushCorrelationRule>>() {
+        new HashMap<>() {
 
-        private static final long serialVersionUID = 3109256773218160485L;
+            private static final long serialVersionUID = 3109256773218160485L;
 
-        {
-            put(DummyPushCorrelationRuleConf.class, DummyPushCorrelationRule.class);
-            put(DefaultPushCorrelationRuleConf.class, DefaultPushCorrelationRule.class);
-        }
-    };
+            {
+                put(DummyPushCorrelationRuleConf.class, DummyPushCorrelationRule.class);
+                put(DefaultPushCorrelationRuleConf.class, DefaultPushCorrelationRule.class);
+            }
+        };
 
     private static final Set<Class<?>> AUDITAPPENDER_CLASSES = new HashSet<>(
             List.of(TestFileAuditAppender.class, TestFileRewriteAuditAppender.class));
@@ -156,13 +156,13 @@
     private static final Set<Class<?>> PROVISION_SORTER_CLASSES = new HashSet<>(
             List.of(DefaultProvisionSorter.class));
 
-    private static final Map<String, Set<String>> CLASS_NAMES = new HashMap<String, Set<String>>() {
+    private static final Map<String, Set<String>> CLASS_NAMES = new HashMap<>() {
 
         private static final long serialVersionUID = 3109256773218160485L;
 
         {
             Set<String> classNames = ITImplementationLookup.JWTSSOPROVIDER_CLASSES.stream().
-                    map(Class::getName).collect(Collectors.toSet());
+                map(Class::getName).collect(Collectors.toSet());
             put(IdRepoImplementationType.JWT_SSO_PROVIDER, classNames);
 
             classNames = new HashSet<>();
@@ -174,11 +174,11 @@
             put(IdRepoImplementationType.REPORTLET, classNames);
 
             classNames = ITImplementationLookup.ACCOUNT_RULE_CLASSES.values().stream().
-                    map(Class::getName).collect(Collectors.toSet());
+                map(Class::getName).collect(Collectors.toSet());
             put(IdRepoImplementationType.ACCOUNT_RULE, classNames);
 
             classNames = ITImplementationLookup.PASSWORD_RULE_CLASSES.values().stream().
-                    map(Class::getName).collect(Collectors.toSet());
+                map(Class::getName).collect(Collectors.toSet());
             put(IdRepoImplementationType.PASSWORD_RULE, classNames);
 
             classNames = new HashSet<>();
@@ -234,11 +234,11 @@
             put(IdRepoImplementationType.RECIPIENTS_PROVIDER, classNames);
 
             classNames = ITImplementationLookup.AUDITAPPENDER_CLASSES.stream().
-                    map(Class::getName).collect(Collectors.toSet());
+                map(Class::getName).collect(Collectors.toSet());
             put(IdRepoImplementationType.AUDIT_APPENDER, classNames);
 
             classNames = ITImplementationLookup.PROVISION_SORTER_CLASSES.stream().
-                    map(Class::getName).collect(Collectors.toSet());
+                map(Class::getName).collect(Collectors.toSet());
             put(IdMImplementationType.PROVISION_SORTER, classNames);
         }
     };
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
index 8770f2f..f7e71d1 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
@@ -557,26 +557,26 @@
                 throw (RuntimeException) ex;
             }
         }
-        return response.readEntity(new GenericType<ProvisioningResult<UserTO>>() {
+        return response.readEntity(new GenericType<>() {
         });
     }
 
     protected ProvisioningResult<UserTO> updateUser(final UserUR req) {
         return userService.update(req).
-                readEntity(new GenericType<ProvisioningResult<UserTO>>() {
+                readEntity(new GenericType<>() {
                 });
     }
 
     protected ProvisioningResult<UserTO> updateUser(final UserTO userTO) {
         UserTO before = userService.read(userTO.getKey());
         return userService.update(AnyOperations.diff(userTO, before, false)).
-                readEntity(new GenericType<ProvisioningResult<UserTO>>() {
+                readEntity(new GenericType<>() {
                 });
     }
 
     protected ProvisioningResult<UserTO> deleteUser(final String key) {
         return userService.delete(key).
-                readEntity(new GenericType<ProvisioningResult<UserTO>>() {
+                readEntity(new GenericType<>() {
                 });
     }
 
@@ -588,19 +588,19 @@
                 throw (RuntimeException) ex;
             }
         }
-        return response.readEntity(new GenericType<ProvisioningResult<AnyObjectTO>>() {
+        return response.readEntity(new GenericType<>() {
         });
     }
 
     protected ProvisioningResult<AnyObjectTO> updateAnyObject(final AnyObjectUR req) {
         return anyObjectService.update(req).
-                readEntity(new GenericType<ProvisioningResult<AnyObjectTO>>() {
+                readEntity(new GenericType<>() {
                 });
     }
 
     protected ProvisioningResult<AnyObjectTO> deleteAnyObject(final String key) {
         return anyObjectService.delete(key).
-                readEntity(new GenericType<ProvisioningResult<AnyObjectTO>>() {
+                readEntity(new GenericType<>() {
                 });
     }
 
@@ -612,19 +612,19 @@
                 throw (RuntimeException) ex;
             }
         }
-        return response.readEntity(new GenericType<ProvisioningResult<GroupTO>>() {
+        return response.readEntity(new GenericType<>() {
         });
     }
 
     protected ProvisioningResult<GroupTO> updateGroup(final GroupUR req) {
         return groupService.update(req).
-                readEntity(new GenericType<ProvisioningResult<GroupTO>>() {
+                readEntity(new GenericType<>() {
                 });
     }
 
     protected ProvisioningResult<GroupTO> deleteGroup(final String key) {
         return groupService.delete(key).
-                readEntity(new GenericType<ProvisioningResult<GroupTO>>() {
+                readEntity(new GenericType<>() {
                 });
     }
 
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/BatchITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/BatchITCase.java
index 8ba5538..71bff37 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/BatchITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/BatchITCase.java
@@ -150,8 +150,8 @@
         assertNotNull(resItems.get(0).getHeaders().get(RESTHeaders.RESOURCE_KEY));
         assertEquals(RESTHeaders.APPLICATION_YAML, resItems.get(0).getHeaders().get(HttpHeaders.CONTENT_TYPE).get(0));
         ProvisioningResult<UserTO> user = YAML_MAPPER.readValue(
-                resItems.get(0).getContent(), new TypeReference<ProvisioningResult<UserTO>>() {
-        });
+                resItems.get(0).getContent(), new TypeReference<>() {
+            });
         assertNotNull(user.getEntity().getKey());
 
         assertEquals(Response.Status.CREATED.getStatusCode(), resItems.get(1).getStatus());
@@ -162,8 +162,8 @@
         assertEquals(MediaType.APPLICATION_XML, resItems.get(1).getHeaders().get(HttpHeaders.CONTENT_TYPE).get(0));
 
         ProvisioningResult<GroupTO> group = XML_MAPPER.readValue(
-                resItems.get(1).getContent(), new TypeReference<ProvisioningResult<GroupTO>>() {
-        });
+                resItems.get(1).getContent(), new TypeReference<>() {
+            });
         assertNotNull(group.getEntity().getKey());
 
         assertEquals(Response.Status.NO_CONTENT.getStatusCode(), resItems.get(2).getStatus());
@@ -184,8 +184,8 @@
         assertNotNull(resItems.get(5).getHeaders().get(RESTHeaders.DOMAIN));
         assertEquals(MediaType.APPLICATION_JSON, resItems.get(5).getHeaders().get(HttpHeaders.CONTENT_TYPE).get(0));
         group = OBJECT_MAPPER.readValue(
-                resItems.get(5).getContent(), new TypeReference<ProvisioningResult<GroupTO>>() {
-        });
+                resItems.get(5).getContent(), new TypeReference<>() {
+            });
         assertNotNull(group);
     }
 
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java
index 44d01f3..42140ae 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java
@@ -381,24 +381,24 @@
 
         // 2. check propagation
         ProvisioningResult<RealmTO> result = realmService.create("/", realm).readEntity(
-                new GenericType<ProvisioningResult<RealmTO>>() {
-        });
+            new GenericType<>() {
+            });
         assertNotNull(result);
         assertEquals(1, result.getPropagationStatuses().size());
         assertEquals(RESOURCE_NAME_LDAP_ORGUNIT, result.getPropagationStatuses().get(0).getResource());
         assertEquals(ExecStatus.SUCCESS, result.getPropagationStatuses().get(0).getStatus());
 
         ProvisioningResult<RealmTO> resultChild = realmService.create("/test", childRealm).readEntity(
-                new GenericType<ProvisioningResult<RealmTO>>() {
-        });
+            new GenericType<>() {
+            });
         assertNotNull(resultChild);
         assertEquals(1, resultChild.getPropagationStatuses().size());
         assertEquals(RESOURCE_NAME_LDAP_ORGUNIT, resultChild.getPropagationStatuses().get(0).getResource());
         assertEquals(ExecStatus.SUCCESS, resultChild.getPropagationStatuses().get(0).getStatus());
 
         ProvisioningResult<RealmTO> resultDescendant = realmService.create("/test/child", descendantRealm).readEntity(
-                new GenericType<ProvisioningResult<RealmTO>>() {
-        });
+            new GenericType<>() {
+            });
         assertNotNull(resultDescendant);
         assertEquals(1, resultDescendant.getPropagationStatuses().size());
         assertEquals(RESOURCE_NAME_LDAP_ORGUNIT, resultDescendant.getPropagationStatuses().get(0).getResource());
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ReportTemplateITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ReportTemplateITCase.java
index 773c2d6..08874dc 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ReportTemplateITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ReportTemplateITCase.java
@@ -37,6 +37,7 @@
 import org.apache.syncope.common.lib.types.ReportExecExportFormat;
 import org.apache.syncope.common.lib.types.ReportTemplateFormat;
 import org.apache.syncope.fit.AbstractITCase;
+import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
 public class ReportTemplateITCase extends AbstractITCase {
@@ -52,7 +53,7 @@
         List<ReportTemplateTO> reportTemplateTOs = reportTemplateService.list();
         assertNotNull(reportTemplateTOs);
         assertFalse(reportTemplateTOs.isEmpty());
-        reportTemplateTOs.forEach(instance -> assertNotNull(instance));
+        reportTemplateTOs.forEach(Assertions::assertNotNull);
     }
 
     @Test
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RoleITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RoleITCase.java
index 6f5e2cc..77150dd 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RoleITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RoleITCase.java
@@ -37,6 +37,7 @@
 import org.apache.syncope.common.lib.types.IdRepoEntitlement;
 import org.apache.syncope.common.rest.api.service.RoleService;
 import org.apache.syncope.fit.AbstractITCase;
+import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
 public class RoleITCase extends AbstractITCase {
@@ -55,7 +56,7 @@
         List<RoleTO> roleTOs = roleService.list();
         assertNotNull(roleTOs);
         assertFalse(roleTOs.isEmpty());
-        roleTOs.forEach(instance -> assertNotNull(instance));
+        roleTOs.forEach(Assertions::assertNotNull);
     }
 
     @Test
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SCIMITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SCIMITCase.java
index 5bbdea0..1f334fc 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SCIMITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SCIMITCase.java
@@ -153,7 +153,7 @@
                 SCIMConstants.APPLICATION_SCIM_JSON,
                 StringUtils.substringBefore(response.getHeaderString(HttpHeaders.CONTENT_TYPE), ";"));
 
-        List<ResourceType> resourceTypes = response.readEntity(new GenericType<List<ResourceType>>() {
+        List<ResourceType> resourceTypes = response.readEntity(new GenericType<>() {
         });
         assertNotNull(resourceTypes);
         assertEquals(2, resourceTypes.size());
@@ -260,7 +260,7 @@
                 SCIMConstants.APPLICATION_SCIM_JSON,
                 StringUtils.substringBefore(response.getHeaderString(HttpHeaders.CONTENT_TYPE), ";"));
 
-        ListResponse<SCIMGroup> result = response.readEntity(new GenericType<ListResponse<SCIMGroup>>() {
+        ListResponse<SCIMGroup> result = response.readEntity(new GenericType<>() {
         });
         assertNotNull(result);
         assertTrue(result.getTotalResults() > 0);
@@ -290,7 +290,7 @@
                 SCIMConstants.APPLICATION_SCIM_JSON,
                 StringUtils.substringBefore(response.getHeaderString(HttpHeaders.CONTENT_TYPE), ";"));
 
-        ListResponse<SCIMGroup> groups = response.readEntity(new GenericType<ListResponse<SCIMGroup>>() {
+        ListResponse<SCIMGroup> groups = response.readEntity(new GenericType<>() {
         });
         assertNotNull(groups);
         assertEquals(1, groups.getTotalResults());
@@ -306,7 +306,7 @@
                 SCIMConstants.APPLICATION_SCIM_JSON,
                 StringUtils.substringBefore(response.getHeaderString(HttpHeaders.CONTENT_TYPE), ";"));
 
-        groups = response.readEntity(new GenericType<ListResponse<SCIMGroup>>() {
+        groups = response.readEntity(new GenericType<>() {
         });
         assertNotNull(groups);
         assertEquals(1, groups.getTotalResults());
@@ -327,7 +327,7 @@
                 SCIMConstants.APPLICATION_SCIM_JSON,
                 StringUtils.substringBefore(response.getHeaderString(HttpHeaders.CONTENT_TYPE), ";"));
 
-        ListResponse<SCIMUser> users = response.readEntity(new GenericType<ListResponse<SCIMUser>>() {
+        ListResponse<SCIMUser> users = response.readEntity(new GenericType<>() {
         });
         assertNotNull(users);
         assertEquals(1, users.getTotalResults());
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
index 0b865f5..fc36189 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
@@ -879,8 +879,8 @@
         userCR.getResources().add(RESOURCE_NAME_LDAP);
 
         ProvisioningResult<UserTO> result = asyncService.create(userCR).readEntity(
-                new GenericType<ProvisioningResult<UserTO>>() {
-        });
+            new GenericType<>() {
+            });
         assertNotNull(result);
         verifyAsyncResult(result.getPropagationStatuses());
 
@@ -891,14 +891,14 @@
                 value("password321").build());
 
         result = asyncService.update(userUR).readEntity(
-                new GenericType<ProvisioningResult<UserTO>>() {
-        });
+            new GenericType<>() {
+            });
         assertNotNull(result);
         verifyAsyncResult(result.getPropagationStatuses());
 
         result = asyncService.delete(result.getEntity().getKey()).readEntity(
-                new GenericType<ProvisioningResult<UserTO>>() {
-        });
+            new GenericType<>() {
+            });
         assertNotNull(result);
         verifyAsyncResult(result.getPropagationStatuses());
     }
diff --git a/wa/starter/src/test/java/org/apache/syncope/wa/starter/pac4j/saml/SyncopeWASAML2ClientKeystoreGeneratorTest.java b/wa/starter/src/test/java/org/apache/syncope/wa/starter/pac4j/saml/SyncopeWASAML2ClientKeystoreGeneratorTest.java
index 1825ccb..300a61e 100644
--- a/wa/starter/src/test/java/org/apache/syncope/wa/starter/pac4j/saml/SyncopeWASAML2ClientKeystoreGeneratorTest.java
+++ b/wa/starter/src/test/java/org/apache/syncope/wa/starter/pac4j/saml/SyncopeWASAML2ClientKeystoreGeneratorTest.java
@@ -61,6 +61,6 @@
     public void generate() throws Exception {
         SAML2Client client = getSAML2Client();
         SAML2KeystoreGenerator generator = new SyncopeWASAML2ClientKeystoreGenerator(getWaRestClient(), client);
-        assertDoesNotThrow(() -> generator.generate());
+        assertDoesNotThrow(generator::generate);
     }
 }