You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by fm...@apache.org on 2016/07/08 16:23:03 UTC

[1/2] syncope git commit: [SYNCOPE-896] fix for drop down null valid flag + destination realm management improvement

Repository: syncope
Updated Branches:
  refs/heads/master e3fc22634 -> 3f1206993


[SYNCOPE-896] fix for drop down null valid flag + destination realm management improvement


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

Branch: refs/heads/master
Commit: 49b4f39c8aaf35362f72dc23d1698e1d1879b8d2
Parents: e3fc226
Author: fmartelli <fa...@gmail.com>
Authored: Fri Jul 8 16:54:56 2016 +0200
Committer: fmartelli <fa...@gmail.com>
Committed: Fri Jul 8 16:54:56 2016 +0200

----------------------------------------------------------------------
 .../html/form/AjaxDropDownChoicePanel.java      | 10 +++++-
 .../any/AnyObjectTemplateWizardBuilder.java     | 12 +++++++
 .../wizards/any/AnyObjectWizardBuilder.java     |  9 ++---
 .../console/wizards/any/AnyWizardBuilder.java   | 15 ++++----
 .../client/console/wizards/any/Details.java     | 38 ++++++++++++++++----
 .../wizards/any/GroupTemplateWizardBuilder.java | 12 +++++++
 .../console/wizards/any/GroupWizardBuilder.java |  9 ++---
 .../wizards/any/UserTemplateWizardBuilder.java  | 12 +++++++
 .../console/wizards/any/UserWizardBuilder.java  |  9 ++---
 9 files changed, 95 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/49b4f39c/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDropDownChoicePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDropDownChoicePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDropDownChoicePanel.java
index f08684f..7a1bfc4 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDropDownChoicePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDropDownChoicePanel.java
@@ -59,6 +59,14 @@ public class AjaxDropDownChoicePanel<T extends Serializable> extends FieldPanel<
                 }
             });
         }
+        
+        setNullValid(true);
+    }
+
+    @Override
+    public FieldPanel<T> setRequired(final boolean required) {
+        setNullValid(!required);
+        return super.setRequired(required);
     }
 
     @SuppressWarnings("unchecked")
@@ -79,7 +87,7 @@ public class AjaxDropDownChoicePanel<T extends Serializable> extends FieldPanel<
         return this;
     }
 
-    public AjaxDropDownChoicePanel<T> setNullValid(final boolean validity) {
+    public final AjaxDropDownChoicePanel<T> setNullValid(final boolean validity) {
         BootstrapSelect.class.cast(field).setNullValid(validity);
         return this;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/49b4f39c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectTemplateWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectTemplateWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectTemplateWizardBuilder.java
index da37ad5..239a503 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectTemplateWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectTemplateWizardBuilder.java
@@ -31,6 +31,8 @@ public class AnyObjectTemplateWizardBuilder extends AnyObjectWizardBuilder
 
     private static final long serialVersionUID = 6716803168859873877L;
 
+    private final TemplatableTO templatable;
+
     public AnyObjectTemplateWizardBuilder(
             final TemplatableTO templatable,
             final String anyType,
@@ -38,6 +40,7 @@ public class AnyObjectTemplateWizardBuilder extends AnyObjectWizardBuilder
             final AnyObjectFormLayoutInfo formLayoutInfo,
             final PageReference pageRef) {
         super(null, anyTypeClasses, formLayoutInfo, pageRef);
+        this.templatable = templatable;
 
         if (templatable.getTemplates().containsKey(anyType)) {
             setItem(new AnyWrapper<>(AnyObjectTO.class.cast(templatable.getTemplates().get(anyType))));
@@ -52,6 +55,15 @@ public class AnyObjectTemplateWizardBuilder extends AnyObjectWizardBuilder
     }
 
     @Override
+    protected Details<AnyObjectTO> addOptionalDetailsPanel(final AnyWrapper<AnyObjectTO> modelObject) {
+        final Details<AnyObjectTO> details = super.addOptionalDetailsPanel(modelObject);
+        if (templatable instanceof RealmTO) {
+            details.disableRealmSpecification();
+        }
+        return details;
+    }
+
+    @Override
     public AjaxWizard<AnyWrapper<AnyObjectTO>> build(final String id) {
         return super.build(id, AjaxWizard.Mode.TEMPLATE);
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/49b4f39c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectWizardBuilder.java
index 9a8ad87..3eb30ea 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyObjectWizardBuilder.java
@@ -31,7 +31,6 @@ import org.apache.syncope.common.lib.patch.AnyObjectPatch;
 import org.apache.syncope.common.lib.to.AnyObjectTO;
 import org.apache.syncope.common.lib.to.ProvisioningResult;
 import org.apache.wicket.PageReference;
-import org.apache.wicket.extensions.wizard.WizardModel;
 import org.apache.wicket.model.util.ListModel;
 
 public class AnyObjectWizardBuilder extends AnyWizardBuilder<AnyObjectTO> implements AnyObjectForm {
@@ -72,13 +71,11 @@ public class AnyObjectWizardBuilder extends AnyWizardBuilder<AnyObjectTO> implem
     }
 
     @Override
-    protected AnyObjectWizardBuilder addOptionalDetailsPanel(
-            final AnyWrapper<AnyObjectTO> modelObject, final WizardModel wizardModel) {
-        wizardModel.add(new AnyObjectDetails(
+    protected Details<AnyObjectTO> addOptionalDetailsPanel(final AnyWrapper<AnyObjectTO> modelObject) {
+        return new AnyObjectDetails(
                 modelObject,
                 new ListModel<>(Collections.<StatusBean>emptyList()),
                 mode == AjaxWizard.Mode.TEMPLATE,
-                modelObject.getInnerObject().getKey() != null, pageRef));
-        return this;
+                modelObject.getInnerObject().getKey() != null, pageRef);
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/49b4f39c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java
index 793ebc7..4df08c0 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/AnyWizardBuilder.java
@@ -84,7 +84,10 @@ public abstract class AnyWizardBuilder<A extends AnyTO> extends AjaxWizardBuilde
     @Override
     protected WizardModel buildModelSteps(final AnyWrapper<A> modelObject, final WizardModel wizardModel) {
         // optional details panel step
-        addOptionalDetailsPanel(modelObject, wizardModel);
+        final Details<A> details = addOptionalDetailsPanel(modelObject);
+        if (details != null) {
+            wizardModel.add(details);
+        }
 
         if ((this instanceof GroupWizardBuilder)
                 && (modelObject.getInnerObject() instanceof GroupTO)
@@ -155,17 +158,17 @@ public abstract class AnyWizardBuilder<A extends AnyTO> extends AjaxWizardBuilde
         return wizardModel;
     }
 
-    protected AnyWizardBuilder<A> addOptionalDetailsPanel(
-            final AnyWrapper<A> modelObject, final WizardModel wizardModel) {
+    protected Details<A> addOptionalDetailsPanel(final AnyWrapper<A> modelObject) {
 
         if (modelObject.getInnerObject().getKey() != null) {
-            wizardModel.add(new Details<>(
+            return new Details<>(
                     modelObject,
                     new ListModel<>(Collections.<StatusBean>emptyList()),
                     mode == AjaxWizard.Mode.TEMPLATE,
                     true,
-                    pageRef));
+                    pageRef);
+        } else {
+            return null;
         }
-        return this;
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/49b4f39c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java
index 483539a..8e1ccfb 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Details.java
@@ -18,11 +18,17 @@
  */
 package org.apache.syncope.client.console.wizards.any;
 
+import java.util.ArrayList;
 import java.util.List;
-import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.Transformer;
 import org.apache.syncope.client.console.commons.status.StatusBean;
+import org.apache.syncope.client.console.rest.RealmRestClient;
+import org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
+import org.apache.syncope.client.console.wicket.markup.html.form.FieldPanel;
 import org.apache.syncope.common.lib.to.AnyTO;
+import org.apache.syncope.common.lib.to.RealmTO;
 import org.apache.wicket.PageReference;
 import org.apache.wicket.extensions.wizard.WizardStep;
 import org.apache.wicket.model.IModel;
@@ -40,6 +46,8 @@ public class Details<T extends AnyTO> extends WizardStep {
 
     protected final StatusPanel statusPanel;
 
+    private final FieldPanel<String> realm;
+
     public Details(
             final AnyWrapper<T> wrapper,
             final IModel<List<StatusBean>> statusModel,
@@ -51,13 +59,26 @@ public class Details<T extends AnyTO> extends WizardStep {
 
         final T inner = wrapper.getInnerObject();
 
-        final AjaxTextFieldPanel realm = new AjaxTextFieldPanel(
-                "destinationRealm", "destinationRealm", new PropertyModel<String>(inner, "realm"), false);
-        add(realm.setReadOnly(StringUtils.isNotEmpty(inner.getRealm())));
         if (templateMode) {
-            realm.enableJexlHelp();
+            realm = new AjaxTextFieldPanel(
+                    "destinationRealm", "destinationRealm", new PropertyModel<String>(inner, "realm"), false);
+            AjaxTextFieldPanel.class.cast(realm).enableJexlHelp();
+        } else {
+            realm = new AjaxDropDownChoicePanel<>(
+                    "destinationRealm", "destinationRealm", new PropertyModel<String>(inner, "realm"), false);
+
+            ((AjaxDropDownChoicePanel<String>) realm).setChoices(CollectionUtils.collect(
+                    new RealmRestClient().list(),
+                    new Transformer<RealmTO, String>() {
+
+                @Override
+                public String transform(final RealmTO input) {
+                    return input.getFullPath();
+                }
+            }, new ArrayList<String>()));
         }
-        
+        add(realm);
+
         statusPanel = new StatusPanel("status", inner, statusModel, pageRef);
 
         add(statusPanel.setEnabled(includeStatusPanel).
@@ -67,6 +88,11 @@ public class Details<T extends AnyTO> extends WizardStep {
                 setEnabled(includeStatusPanel).setVisible(includeStatusPanel).setRenderBodyOnly(true));
     }
 
+    public Details<T> disableRealmSpecification() {
+        this.realm.setReadOnly(true);
+        return this;
+    }
+
     protected AnnotatedBeanPanel getGeneralStatusInformation(final String id, final T anyTO) {
         return new AnnotatedBeanPanel(id, anyTO);
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/49b4f39c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupTemplateWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupTemplateWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupTemplateWizardBuilder.java
index cccc25f..13f0698 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupTemplateWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupTemplateWizardBuilder.java
@@ -31,12 +31,15 @@ public class GroupTemplateWizardBuilder extends GroupWizardBuilder implements Te
 
     private static final long serialVersionUID = 6716803168859873877L;
 
+    private final TemplatableTO templatable;
+
     public GroupTemplateWizardBuilder(
             final TemplatableTO templatable,
             final List<String> anyTypeClasses,
             final GroupFormLayoutInfo formLayoutInfo,
             final PageReference pageRef) {
         super(null, anyTypeClasses, formLayoutInfo, pageRef);
+        this.templatable = templatable;
 
         if (templatable.getTemplates().containsKey(AnyTypeKind.GROUP.name())) {
             setItem(new GroupWrapper(GroupTO.class.cast(templatable.getTemplates().get(AnyTypeKind.GROUP.name()))));
@@ -50,6 +53,15 @@ public class GroupTemplateWizardBuilder extends GroupWizardBuilder implements Te
     }
 
     @Override
+    protected Details<GroupTO> addOptionalDetailsPanel(final AnyWrapper<GroupTO> modelObject) {
+        final Details<GroupTO> details = super.addOptionalDetailsPanel(modelObject);
+        if (templatable instanceof RealmTO) {
+            details.disableRealmSpecification();
+        }
+        return details;
+    }
+
+    @Override
     public AjaxWizard<AnyWrapper<GroupTO>> build(final String id) {
         return super.build(id, AjaxWizard.Mode.TEMPLATE);
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/49b4f39c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java
index 875cca0..04f72dc 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/GroupWizardBuilder.java
@@ -32,7 +32,6 @@ import org.apache.syncope.common.lib.patch.GroupPatch;
 import org.apache.syncope.common.lib.to.GroupTO;
 import org.apache.syncope.common.lib.to.ProvisioningResult;
 import org.apache.wicket.PageReference;
-import org.apache.wicket.extensions.wizard.WizardModel;
 import org.apache.wicket.model.util.ListModel;
 
 public class GroupWizardBuilder extends AnyWizardBuilder<GroupTO> implements GroupForm {
@@ -88,13 +87,11 @@ public class GroupWizardBuilder extends AnyWizardBuilder<GroupTO> implements Gro
     }
 
     @Override
-    protected GroupWizardBuilder addOptionalDetailsPanel(
-            final AnyWrapper<GroupTO> modelObject, final WizardModel wizardModel) {
-        wizardModel.add(new GroupDetails(
+    protected Details<GroupTO> addOptionalDetailsPanel(final AnyWrapper<GroupTO> modelObject) {
+        return new GroupDetails(
                 GroupWrapper.class.cast(modelObject),
                 new ListModel<>(Collections.<StatusBean>emptyList()),
                 mode == AjaxWizard.Mode.TEMPLATE,
-                modelObject.getInnerObject().getKey() != null, pageRef));
-        return this;
+                modelObject.getInnerObject().getKey() != null, pageRef);
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/49b4f39c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserTemplateWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserTemplateWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserTemplateWizardBuilder.java
index a795cd7..9873e35 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserTemplateWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserTemplateWizardBuilder.java
@@ -31,12 +31,15 @@ public class UserTemplateWizardBuilder extends UserWizardBuilder implements Temp
 
     private static final long serialVersionUID = 6716803168859873877L;
 
+    private final TemplatableTO templatable;
+
     public UserTemplateWizardBuilder(
             final TemplatableTO templatable,
             final List<String> anyTypeClasses,
             final UserFormLayoutInfo formLayoutInfo,
             final PageReference pageRef) {
         super(null, anyTypeClasses, formLayoutInfo, pageRef);
+        this.templatable = templatable;
 
         if (templatable.getTemplates().containsKey(AnyTypeKind.USER.name())) {
             setItem(new UserWrapper(UserTO.class.cast(templatable.getTemplates().get(AnyTypeKind.USER.name()))));
@@ -50,6 +53,15 @@ public class UserTemplateWizardBuilder extends UserWizardBuilder implements Temp
     }
 
     @Override
+    protected Details<UserTO> addOptionalDetailsPanel(final AnyWrapper<UserTO> modelObject) {
+        final Details<UserTO> details = super.addOptionalDetailsPanel(modelObject);
+        if (templatable instanceof RealmTO) {
+            details.disableRealmSpecification();
+        }
+        return details;
+    }
+
+    @Override
     public AjaxWizard<AnyWrapper<UserTO>> build(final String id) {
         return super.build(id, AjaxWizard.Mode.TEMPLATE);
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/49b4f39c/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java
index 8d4d758..11078e7 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/UserWizardBuilder.java
@@ -35,7 +35,6 @@ import org.apache.syncope.common.lib.patch.UserPatch;
 import org.apache.syncope.common.lib.to.ProvisioningResult;
 import org.apache.syncope.common.lib.to.UserTO;
 import org.apache.wicket.PageReference;
-import org.apache.wicket.extensions.wizard.WizardModel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.util.ListModel;
 
@@ -98,15 +97,13 @@ public class UserWizardBuilder extends AnyWizardBuilder<UserTO> implements UserF
     }
 
     @Override
-    protected UserWizardBuilder addOptionalDetailsPanel(
-            final AnyWrapper<UserTO> modelObject, final WizardModel wizardModel) {
+    protected Details<UserTO> addOptionalDetailsPanel(final AnyWrapper<UserTO> modelObject) {
 
-        wizardModel.add(new UserDetails(
+        return new UserDetails(
                 UserWrapper.class.cast(modelObject), statusModel, mode == AjaxWizard.Mode.TEMPLATE,
                 modelObject.getInnerObject().getKey() != null,
                 UserFormLayoutInfo.class.cast(formLayoutInfo).isPasswordManagement(),
-                pageRef));
-        return this;
+                pageRef);
     }
 
     /**


[2/2] syncope git commit: [SYNCOPE-890] provides title on the checkbox

Posted by fm...@apache.org.
[SYNCOPE-890] provides title on the checkbox


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

Branch: refs/heads/master
Commit: 3f1206993548090a3e7c46d2a117017fa3941989
Parents: 49b4f39
Author: fmartelli <fa...@gmail.com>
Authored: Fri Jul 8 17:37:57 2016 +0200
Committer: fmartelli <fa...@gmail.com>
Committed: Fri Jul 8 17:37:57 2016 +0200

----------------------------------------------------------------------
 .../resources/ResourceProvisionPanel.java       | 146 +++++++++----------
 .../resources/ResourceProvisionPanel.properties |   1 +
 .../ResourceProvisionPanel_it.properties        |   1 +
 .../ResourceProvisionPanel_pt_BR.properties     |   1 +
 .../ResourceProvisionPanel_ru.properties        |   1 +
 5 files changed, 77 insertions(+), 73 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/3f120699/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java
index 28f0346..dd6c7de 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java
@@ -64,7 +64,7 @@ public class ResourceProvisionPanel extends AbstractModalPanel<Serializable> {
     private static final long serialVersionUID = -7982691107029848579L;
 
     private final ConnectorRestClient connectorRestClient = new ConnectorRestClient();
-    
+
     private final ResourceTO resourceTO;
 
     private Model<OrgUnitTO> baseModel;
@@ -98,6 +98,7 @@ public class ResourceProvisionPanel extends AbstractModalPanel<Serializable> {
                 Model.of(realmProvisionEnabled),
                 false);
         aboutRealmProvison.add(enableRealmsProvision);
+        enableRealmsProvision.setIndex(1).setTitle(getString("enableRealmsProvision.title"));
 
         final WebMarkupContainer realmsProvisionContainer = new WebMarkupContainer("realmsProvisionContainer");
         realmsProvisionContainer.setOutputMarkupPlaceholderTag(true);
@@ -178,14 +179,14 @@ public class ResourceProvisionPanel extends AbstractModalPanel<Serializable> {
                         ? null
                         : IteratorUtils.find(list.iterator(), new Predicate<ProvisionTO>() {
 
-                            @Override
-                            public boolean evaluate(final ProvisionTO in) {
-                                return ((item.getKey() == null && in.getKey() == null)
-                                        || (in.getKey() != null && in.getKey().equals(item.getKey())))
-                                        && ((item.getAnyType() == null && in.getAnyType() == null)
-                                        || (in.getAnyType() != null && in.getAnyType().equals(item.getAnyType())));
-                            }
-                        });
+                    @Override
+                    public boolean evaluate(final ProvisionTO in) {
+                        return ((item.getKey() == null && in.getKey() == null)
+                                || (in.getKey() != null && in.getKey().equals(item.getKey())))
+                                && ((item.getAnyType() == null && in.getAnyType() == null)
+                                || (in.getAnyType() != null && in.getAnyType().equals(item.getAnyType())));
+                    }
+                });
             }
 
             @Override
@@ -199,7 +200,6 @@ public class ResourceProvisionPanel extends AbstractModalPanel<Serializable> {
                 ResourceProvisionPanel.this.aboutRealmProvison.setVisible(true);
                 target.add(ResourceProvisionPanel.this.aboutRealmProvison);
             }
-
         };
 
         builder.setItems(resourceTO.getProvisions());
@@ -209,82 +209,82 @@ public class ResourceProvisionPanel extends AbstractModalPanel<Serializable> {
         builder.
                 addAction(new ActionLink<ProvisionTO>() {
 
-                    private static final long serialVersionUID = -3722207913631435504L;
+            private static final long serialVersionUID = -3722207913631435504L;
 
-                    @Override
-                    public void onClick(final AjaxRequestTarget target, final ProvisionTO provisionTO) {
-                        send(ResourceProvisionPanel.this, Broadcast.DEPTH,
-                                new AjaxWizard.NewItemActionEvent<>(provisionTO, 2, target).setResourceModel(
-                                        new StringResourceModel("inner.provision.mapping",
-                                                ResourceProvisionPanel.this,
-                                                Model.of(provisionTO))));
-                    }
-                }, ActionLink.ActionType.MAPPING, StandardEntitlement.RESOURCE_UPDATE).
+            @Override
+            public void onClick(final AjaxRequestTarget target, final ProvisionTO provisionTO) {
+                send(ResourceProvisionPanel.this, Broadcast.DEPTH,
+                        new AjaxWizard.NewItemActionEvent<>(provisionTO, 2, target).setResourceModel(
+                        new StringResourceModel("inner.provision.mapping",
+                        ResourceProvisionPanel.this,
+                        Model.of(provisionTO))));
+            }
+        }, ActionLink.ActionType.MAPPING, StandardEntitlement.RESOURCE_UPDATE).
                 addAction(new ActionLink<ProvisionTO>() {
 
-                    private static final long serialVersionUID = -7780999687733432439L;
+            private static final long serialVersionUID = -7780999687733432439L;
 
-                    @Override
-                    public void onClick(final AjaxRequestTarget target, final ProvisionTO provisionTO) {
-                        try {
-                            SyncopeConsoleSession.get().getService(ResourceService.class).
-                                    setLatestSyncToken(resourceTO.getKey(), provisionTO.getAnyType());
-                            SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
-                        } catch (Exception e) {
-                            LOG.error("While setting latest sync token for {}/{}",
-                                    resourceTO.getKey(), provisionTO.getAnyType(), e);
-                            SyncopeConsoleSession.get().error(StringUtils.isBlank(e.getMessage()) ? e.getClass().
-                                    getName() : e.getMessage());
-                        }
-                        ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
-                    }
-                }, ActionLink.ActionType.SET_LATEST_SYNC_TOKEN, StandardEntitlement.RESOURCE_UPDATE).
+            @Override
+            public void onClick(final AjaxRequestTarget target, final ProvisionTO provisionTO) {
+                try {
+                    SyncopeConsoleSession.get().getService(ResourceService.class).
+                            setLatestSyncToken(resourceTO.getKey(), provisionTO.getAnyType());
+                    SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
+                } catch (Exception e) {
+                    LOG.error("While setting latest sync token for {}/{}",
+                            resourceTO.getKey(), provisionTO.getAnyType(), e);
+                    SyncopeConsoleSession.get().error(StringUtils.isBlank(e.getMessage()) ? e.getClass().
+                            getName() : e.getMessage());
+                }
+                ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
+            }
+        }, ActionLink.ActionType.SET_LATEST_SYNC_TOKEN, StandardEntitlement.RESOURCE_UPDATE).
                 addAction(new ActionLink<ProvisionTO>() {
 
-                    private static final long serialVersionUID = -7780999687733432439L;
+            private static final long serialVersionUID = -7780999687733432439L;
 
-                    @Override
-                    public void onClick(final AjaxRequestTarget target, final ProvisionTO provisionTO) {
-                        try {
-                            SyncopeConsoleSession.get().getService(ResourceService.class).
-                                    removeSyncToken(resourceTO.getKey(), provisionTO.getAnyType());
-                            SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
-                        } catch (Exception e) {
-                            LOG.error("While removing sync token for {}/{}",
-                                    resourceTO.getKey(), provisionTO.getAnyType(), e);
-                            SyncopeConsoleSession.get().error(StringUtils.isBlank(e.getMessage()) ? e.getClass().
-                                    getName() : e.getMessage());
-                        }
-                        ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
-                    }
-                }, ActionLink.ActionType.REMOVE_SYNC_TOKEN, StandardEntitlement.RESOURCE_UPDATE).
+            @Override
+            public void onClick(final AjaxRequestTarget target, final ProvisionTO provisionTO) {
+                try {
+                    SyncopeConsoleSession.get().getService(ResourceService.class).
+                            removeSyncToken(resourceTO.getKey(), provisionTO.getAnyType());
+                    SyncopeConsoleSession.get().info(getString(Constants.OPERATION_SUCCEEDED));
+                } catch (Exception e) {
+                    LOG.error("While removing sync token for {}/{}",
+                            resourceTO.getKey(), provisionTO.getAnyType(), e);
+                    SyncopeConsoleSession.get().error(StringUtils.isBlank(e.getMessage()) ? e.getClass().
+                            getName() : e.getMessage());
+                }
+                ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
+            }
+        }, ActionLink.ActionType.REMOVE_SYNC_TOKEN, StandardEntitlement.RESOURCE_UPDATE).
                 addAction(new ActionLink<ProvisionTO>() {
 
-                    private static final long serialVersionUID = -3722207913631435534L;
+            private static final long serialVersionUID = -3722207913631435534L;
 
-                    @Override
-                    public void onClick(final AjaxRequestTarget target, final ProvisionTO provisionTO) {
-                        final ProvisionTO clone = SerializationUtils.clone(provisionTO);
-                        clone.setKey(null);
-                        clone.setAnyType(null);
-                        clone.setObjectClass(null);
-                        send(ResourceProvisionPanel.this, Broadcast.DEPTH,
-                                new AjaxWizard.NewItemActionEvent<>(clone, target).setResourceModel(
-                                        new StringResourceModel("inner.provision.clone",
-                                                ResourceProvisionPanel.this,
-                                                Model.of(provisionTO))));
-                    }
-                }, ActionLink.ActionType.CLONE, StandardEntitlement.RESOURCE_CREATE).
+            @Override
+            public void onClick(final AjaxRequestTarget target, final ProvisionTO provisionTO) {
+                final ProvisionTO clone = SerializationUtils.clone(provisionTO);
+                clone.setKey(null);
+                clone.setAnyType(null);
+                clone.setObjectClass(null);
+                send(ResourceProvisionPanel.this, Broadcast.DEPTH,
+                        new AjaxWizard.NewItemActionEvent<>(clone, target).setResourceModel(
+                        new StringResourceModel("inner.provision.clone",
+                        ResourceProvisionPanel.this,
+                        Model.of(provisionTO))));
+            }
+        }, ActionLink.ActionType.CLONE, StandardEntitlement.RESOURCE_CREATE).
                 addAction(new ActionLink<ProvisionTO>() {
 
-                    private static final long serialVersionUID = -3722207913631435544L;
+            private static final long serialVersionUID = -3722207913631435544L;
 
-                    @Override
-                    public void onClick(final AjaxRequestTarget target, final ProvisionTO provisionTO) {
-                        resourceTO.getProvisions().remove(provisionTO);
-                        send(ResourceProvisionPanel.this, Broadcast.DEPTH, new ListViewReload<>(target));
-                    }
-                }, ActionLink.ActionType.DELETE, StandardEntitlement.RESOURCE_DELETE);
+            @Override
+            public void onClick(final AjaxRequestTarget target, final ProvisionTO provisionTO) {
+                resourceTO.getProvisions().remove(provisionTO);
+                send(ResourceProvisionPanel.this, Broadcast.DEPTH, new ListViewReload<>(target));
+            }
+        }, ActionLink.ActionType.DELETE, StandardEntitlement.RESOURCE_DELETE);
 
         builder.addNewItemPanelBuilder(wizard);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/3f120699/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.properties
index fc01436..267c1c8 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.properties
@@ -40,3 +40,4 @@ enable=Enable
 inner.provision.mapping=${anyType} provision
 inner.provision.clone=Clone provision '${key}'
 enableRealmsProvision=Enable realm provisioning
+enableRealmsProvision.title=Enable the possibility to provision realms towards external resource

http://git-wip-us.apache.org/repos/asf/syncope/blob/3f120699/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_it.properties
index 3698695..fe7aff5 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_it.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_it.properties
@@ -40,3 +40,4 @@ enable=Abilita
 inner.provision.mapping=Provision ${anyType}
 inner.provision.clone=Clona il provision '${key}'
 enableRealmsProvision=Abilita il provisioning dei realm
+enableRealmsProvision.title=Abilita la possibilit\u00e0 di effettuare il provisioning dei realm verso la risorsa esterna

http://git-wip-us.apache.org/repos/asf/syncope/blob/3f120699/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_pt_BR.properties
index 9949a26..66c2d70 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_pt_BR.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_pt_BR.properties
@@ -40,3 +40,4 @@ enable=Habilitado
 inner.provision.mapping=${anyType} provision
 inner.provision.clone=Clone provision '${key}'
 enableRealmsProvision=Enable realm provisioning
+enableRealmsProvision.title=Enable the possibility to provision realms towards external resource

http://git-wip-us.apache.org/repos/asf/syncope/blob/3f120699/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_ru.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_ru.properties b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_ru.properties
index 24c5f0f..5750a4a 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_ru.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel_ru.properties
@@ -61,3 +61,4 @@ enable=\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c
 inner.provision.mapping=${anyType} provision
 inner.provision.clone=Clone provision '${key}'
 enableRealmsProvision=Enable realm provisioning
+enableRealmsProvision.title=Enable the possibility to provision realms towards external resource