This is an automated email from the ASF dual-hosted git repository. ilgrosso pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/syncope.git
commit df0818aa20e1ac821dd04db0d63348b439a9f5da Author: Francesco Chicchiriccò <ilgro...@apache.org> AuthorDate: Fri Feb 24 11:23:35 2023 +0100 [SYNCOPE-1735] Avoid using LoadableDetachableModel inside Spring beans --- .../clientapps/ClientAppModalPanelBuilder.java | 13 +++--- .../console/commons/AMRealmPolicyProvider.java | 48 +++++----------------- .../wizards/resources/ResourceSecurityPanel.java | 19 +++++---- .../console/commons/IdRepoRealmPolicyProvider.java | 35 ++++------------ .../wicket/markup/html/form/PolicyRenderer.java | 7 ++-- 5 files changed, 38 insertions(+), 84 deletions(-) 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 bcc20e79cf..975a42d34e 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 @@ -21,6 +21,7 @@ package org.apache.syncope.client.console.clientapps; import java.util.ArrayList; import java.util.Comparator; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -84,7 +85,7 @@ public class ClientAppModalPanelBuilder<T extends ClientAppTO> extends AbstractM @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, (v1, v2) -> v1, LinkedHashMap::new)); } }; @@ -95,7 +96,7 @@ public class ClientAppModalPanelBuilder<T extends ClientAppTO> extends AbstractM @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, (v1, v2) -> v1, LinkedHashMap::new)); } }; @@ -106,7 +107,7 @@ public class ClientAppModalPanelBuilder<T extends ClientAppTO> extends AbstractM @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, (v1, v2) -> v1, LinkedHashMap::new)); } }; @@ -182,21 +183,21 @@ public class ClientAppModalPanelBuilder<T extends ClientAppTO> extends AbstractM AjaxDropDownChoicePanel<String> accessPolicy = new AjaxDropDownChoicePanel<>( "field", "accessPolicy", new PropertyModel<>(clientAppTO, "accessPolicy"), false); - accessPolicy.setChoiceRenderer(new PolicyRenderer(accessPolicies)); + accessPolicy.setChoiceRenderer(new PolicyRenderer(accessPolicies.getObject())); accessPolicy.setChoices(new ArrayList<>(accessPolicies.getObject().keySet())); ((AbstractSingleSelectChoice<?>) accessPolicy.getField()).setNullValid(true); fields.add(accessPolicy); AjaxDropDownChoicePanel<String> attrReleasePolicy = new AjaxDropDownChoicePanel<>( "field", "attrReleasePolicy", new PropertyModel<>(clientAppTO, "attrReleasePolicy"), false); - attrReleasePolicy.setChoiceRenderer(new PolicyRenderer(attrReleasePolicies)); + attrReleasePolicy.setChoiceRenderer(new PolicyRenderer(attrReleasePolicies.getObject())); attrReleasePolicy.setChoices(new ArrayList<>(attrReleasePolicies.getObject().keySet())); ((AbstractSingleSelectChoice<?>) attrReleasePolicy.getField()).setNullValid(true); fields.add(attrReleasePolicy); AjaxDropDownChoicePanel<String> authPolicy = new AjaxDropDownChoicePanel<>( "field", "authPolicy", new PropertyModel<>(clientAppTO, "authPolicy"), false); - authPolicy.setChoiceRenderer(new PolicyRenderer(authPolicies)); + authPolicy.setChoiceRenderer(new PolicyRenderer(authPolicies.getObject())); authPolicy.setChoices(new ArrayList<>(authPolicies.getObject().keySet())); authPolicy.setRequired(true); ((AbstractSingleSelectChoice<?>) authPolicy.getField()).setNullValid(true); 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 174d03153d..bd358e2c47 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 @@ -19,6 +19,7 @@ package org.apache.syncope.client.console.commons; import java.util.ArrayList; +import java.util.LinkedHashMap; import java.util.Map; import java.util.stream.Collectors; import org.apache.syncope.client.console.rest.PolicyRestClient; @@ -29,8 +30,6 @@ import org.apache.syncope.common.lib.to.RealmTO; import org.apache.syncope.common.lib.types.PolicyType; import org.apache.wicket.markup.html.form.AbstractSingleSelectChoice; import org.apache.wicket.markup.repeater.RepeatingView; -import org.apache.wicket.model.IModel; -import org.apache.wicket.model.LoadableDetachableModel; import org.apache.wicket.model.PropertyModel; import org.apache.wicket.model.ResourceModel; @@ -38,70 +37,43 @@ public class AMRealmPolicyProvider extends IdRepoRealmPolicyProvider { private static final long serialVersionUID = 1671878489700L; - 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)); - } - }; - - 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)); - } - }; - - 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)); - } - }; - @Override public void add(final RealmTO realmTO, final RepeatingView view) { super.add(realmTO, view); + Map<String, String> accessPolicies = PolicyRestClient.list(PolicyType.ACCESS).stream(). + collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName, (v1, v2) -> v1, LinkedHashMap::new)); AjaxDropDownChoicePanel<String> accessPolicy = new AjaxDropDownChoicePanel<>( view.newChildId(), new ResourceModel("accessPolicy", "accessPolicy").getObject(), new PropertyModel<>(realmTO, "accessPolicy"), false); accessPolicy.setChoiceRenderer(new PolicyRenderer(accessPolicies)); - accessPolicy.setChoices(new ArrayList<>(accessPolicies.getObject().keySet())); + accessPolicy.setChoices(new ArrayList<>(accessPolicies.keySet())); ((AbstractSingleSelectChoice<?>) accessPolicy.getField()).setNullValid(true); view.add(accessPolicy); + Map<String, String> attrReleasePolicies = PolicyRestClient.list(PolicyType.ATTR_RELEASE).stream(). + collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName, (v1, v2) -> v1, LinkedHashMap::new)); AjaxDropDownChoicePanel<String> attrReleasePolicy = new AjaxDropDownChoicePanel<>( view.newChildId(), new ResourceModel("attrReleasePolicy", "attrReleasePolicy").getObject(), new PropertyModel<>(realmTO, "attrReleasePolicy"), false); attrReleasePolicy.setChoiceRenderer(new PolicyRenderer(attrReleasePolicies)); - attrReleasePolicy.setChoices(new ArrayList<>(attrReleasePolicies.getObject().keySet())); + attrReleasePolicy.setChoices(new ArrayList<>(attrReleasePolicies.keySet())); ((AbstractSingleSelectChoice<?>) attrReleasePolicy.getField()).setNullValid(true); view.add(attrReleasePolicy); + Map<String, String> authPolicies = PolicyRestClient.list(PolicyType.AUTH).stream(). + collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName, (v1, v2) -> v1, LinkedHashMap::new)); AjaxDropDownChoicePanel<String> authPolicy = new AjaxDropDownChoicePanel<>( view.newChildId(), new ResourceModel("authPolicy", "authPolicy").getObject(), new PropertyModel<>(realmTO, "authPolicy"), false); authPolicy.setChoiceRenderer(new PolicyRenderer(authPolicies)); - authPolicy.setChoices(new ArrayList<>(authPolicies.getObject().keySet())); + authPolicy.setChoices(authPolicies.keySet().stream().collect(Collectors.toList())); ((AbstractSingleSelectChoice<?>) authPolicy.getField()).setNullValid(true); view.add(authPolicy); } 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 ef9dae064f..ed1bf1753e 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 @@ -19,6 +19,7 @@ package org.apache.syncope.client.console.wizards.resources; import java.util.ArrayList; +import java.util.LinkedHashMap; import java.util.Map; import java.util.stream.Collectors; import org.apache.syncope.client.console.rest.PolicyRestClient; @@ -46,7 +47,7 @@ public class ResourceSecurityPanel extends WizardStep { @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, (v1, v2) -> v1, LinkedHashMap::new)); } }; @@ -57,7 +58,7 @@ public class ResourceSecurityPanel extends WizardStep { @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, (v1, v2) -> v1, LinkedHashMap::new)); } }; @@ -68,7 +69,7 @@ public class ResourceSecurityPanel extends WizardStep { @Override protected Map<String, String> load() { return PolicyRestClient.list(PolicyType.PROPAGATION).stream(). - collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName)); + collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName, (v1, v2) -> v1, LinkedHashMap::new)); } }; @@ -79,7 +80,7 @@ public class ResourceSecurityPanel extends WizardStep { @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, (v1, v2) -> v1, LinkedHashMap::new)); } }; @@ -111,7 +112,7 @@ public class ResourceSecurityPanel extends WizardStep { new ResourceModel("passwordPolicy", "passwordPolicy").getObject(), new PropertyModel<>(resourceTO, "passwordPolicy"), false); - passwordPolicy.setChoiceRenderer(new PolicyRenderer(passwordPolicies)); + passwordPolicy.setChoiceRenderer(new PolicyRenderer(passwordPolicies.getObject())); passwordPolicy.setChoices(new ArrayList<>(passwordPolicies.getObject().keySet())); ((DropDownChoice<?>) passwordPolicy.getField()).setNullValid(true); container.add(passwordPolicy); @@ -125,7 +126,7 @@ public class ResourceSecurityPanel extends WizardStep { new ResourceModel("accountPolicy", "accountPolicy").getObject(), new PropertyModel<>(resourceTO, "accountPolicy"), false); - accountPolicy.setChoiceRenderer(new PolicyRenderer(accountPolicies)); + accountPolicy.setChoiceRenderer(new PolicyRenderer(accountPolicies.getObject())); accountPolicy.setChoices(new ArrayList<>(accountPolicies.getObject().keySet())); ((DropDownChoice<?>) accountPolicy.getField()).setNullValid(true); container.add(accountPolicy); @@ -139,7 +140,7 @@ public class ResourceSecurityPanel extends WizardStep { new ResourceModel("propagationPolicy", "propagationPolicy").getObject(), new PropertyModel<>(resourceTO, "propagationPolicy"), false); - propagationPolicy.setChoiceRenderer(new PolicyRenderer(propagationPolicies)); + propagationPolicy.setChoiceRenderer(new PolicyRenderer(propagationPolicies.getObject())); propagationPolicy.setChoices(new ArrayList<>(propagationPolicies.getObject().keySet())); ((DropDownChoice<?>) propagationPolicy.getField()).setNullValid(true); container.add(propagationPolicy); @@ -153,7 +154,7 @@ public class ResourceSecurityPanel extends WizardStep { new ResourceModel("pullPolicy", "pullPolicy").getObject(), new PropertyModel<>(resourceTO, "pullPolicy"), false); - pullPolicy.setChoiceRenderer(new PolicyRenderer(pullPolicies)); + pullPolicy.setChoiceRenderer(new PolicyRenderer(pullPolicies.getObject())); pullPolicy.setChoices(new ArrayList<>(pullPolicies.getObject().keySet())); ((DropDownChoice<?>) pullPolicy.getField()).setNullValid(true); container.add(pullPolicy); @@ -167,7 +168,7 @@ public class ResourceSecurityPanel extends WizardStep { new ResourceModel("pushPolicy", "pushPolicy").getObject(), new PropertyModel<>(resourceTO, "pushPolicy"), false); - pushPolicy.setChoiceRenderer(new PolicyRenderer(pushPolicies)); + pushPolicy.setChoiceRenderer(new PolicyRenderer(pushPolicies.getObject())); pushPolicy.setChoices(new ArrayList<>(pushPolicies.getObject().keySet())); ((DropDownChoice<?>) pushPolicy.getField()).setNullValid(true); container.add(pushPolicy); 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 1e6737043b..c983e030e4 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 @@ -19,6 +19,7 @@ package org.apache.syncope.client.console.commons; import java.util.ArrayList; +import java.util.LinkedHashMap; import java.util.Map; import java.util.stream.Collectors; import org.apache.syncope.client.console.rest.PolicyRestClient; @@ -29,56 +30,36 @@ import org.apache.syncope.common.lib.to.RealmTO; import org.apache.syncope.common.lib.types.PolicyType; import org.apache.wicket.markup.html.form.AbstractSingleSelectChoice; import org.apache.wicket.markup.repeater.RepeatingView; -import org.apache.wicket.model.IModel; -import org.apache.wicket.model.LoadableDetachableModel; import org.apache.wicket.model.PropertyModel; import org.apache.wicket.model.ResourceModel; public class IdRepoRealmPolicyProvider implements RealmPolicyProvider { - private static final long serialVersionUID = 1L; - - 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)); - } - }; - - 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)); - } - }; + private static final long serialVersionUID = 2933826125264961282L; @Override public void add(final RealmTO realmTO, final RepeatingView view) { + Map<String, String> accountPolicies = PolicyRestClient.list(PolicyType.ACCOUNT).stream(). + collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName, (v1, v2) -> v1, LinkedHashMap::new)); AjaxDropDownChoicePanel<String> accountPolicy = new AjaxDropDownChoicePanel<>( view.newChildId(), new ResourceModel("accountPolicy", "accountPolicy").getObject(), new PropertyModel<>(realmTO, "accountPolicy"), false); accountPolicy.setChoiceRenderer(new PolicyRenderer(accountPolicies)); - accountPolicy.setChoices(new ArrayList<>(accountPolicies.getObject().keySet())); + accountPolicy.setChoices(new ArrayList<>(accountPolicies.keySet())); ((AbstractSingleSelectChoice<?>) accountPolicy.getField()).setNullValid(true); view.add(accountPolicy); + Map<String, String> passwordPolicies = PolicyRestClient.list(PolicyType.PASSWORD).stream(). + collect(Collectors.toMap(PolicyTO::getKey, PolicyTO::getName, (v1, v2) -> v1, LinkedHashMap::new)); AjaxDropDownChoicePanel<String> passwordPolicy = new AjaxDropDownChoicePanel<>( view.newChildId(), new ResourceModel("passwordPolicy", "passwordPolicy").getObject(), new PropertyModel<>(realmTO, "passwordPolicy"), false); passwordPolicy.setChoiceRenderer(new PolicyRenderer(passwordPolicies)); - passwordPolicy.setChoices(new ArrayList<>(passwordPolicies.getObject().keySet())); + passwordPolicy.setChoices(new ArrayList<>(passwordPolicies.keySet())); ((AbstractSingleSelectChoice<?>) passwordPolicy.getField()).setNullValid(true); view.add(passwordPolicy); } diff --git a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/PolicyRenderer.java b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/PolicyRenderer.java index 2b05c1b1e3..3d560b5967 100644 --- a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/PolicyRenderer.java +++ b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/PolicyRenderer.java @@ -20,22 +20,21 @@ package org.apache.syncope.client.console.wicket.markup.html.form; import java.util.Map; import org.apache.wicket.markup.html.form.ChoiceRenderer; -import org.apache.wicket.model.IModel; public class PolicyRenderer extends ChoiceRenderer<String> { private static final long serialVersionUID = 8060500161321947000L; - private final IModel<Map<String, String>> policies; + private final Map<String, String> policies; - public PolicyRenderer(final IModel<Map<String, String>> policies) { + public PolicyRenderer(final Map<String, String> policies) { super(); this.policies = policies; } @Override public Object getDisplayValue(final String object) { - return policies.getObject().get(object); + return policies.get(object); } @Override