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

[syncope] 01/02: Allow easier subclassing

This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a commit to branch 2_1_X
in repository https://gitbox.apache.org/repos/asf/syncope.git

commit aeea76c69ca54fc25081cadb02b8a0b4e070b3a3
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Wed Nov 25 12:35:07 2020 +0100

    Allow easier subclassing
---
 .../markup/html/form/AjaxDateTimeFieldPanel.java   | 14 +++++++-----
 .../wicket/markup/html/form/DateFieldPanel.java    | 25 ++++++++++-----------
 .../java/pushpull/DBPasswordPullActions.java       | 26 +++++++++-------------
 .../java/pushpull/LDAPPasswordPullActions.java     |  8 +++----
 4 files changed, 35 insertions(+), 38 deletions(-)

diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateTimeFieldPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateTimeFieldPanel.java
index 37318cf..485ceec 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateTimeFieldPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDateTimeFieldPanel.java
@@ -19,10 +19,9 @@
 package org.apache.syncope.client.console.wicket.markup.html.form;
 
 import com.googlecode.wicket.kendo.ui.form.datetime.AjaxDateTimePicker;
-
 import java.text.DateFormat;
 import java.util.Date;
-
+import java.util.Locale;
 import org.apache.commons.lang3.time.FastDateFormat;
 import org.apache.syncope.client.console.SyncopeConsoleSession;
 import org.apache.wicket.model.IModel;
@@ -40,10 +39,13 @@ public class AjaxDateTimeFieldPanel extends DateFieldPanel {
 
         // dateTimePattern should be spit into separate date and time pattern strings in order to be passed to the
         // AjaxDateTimePicker constructor, but there is no safe way to do that - ignoring
-        field = new AjaxDateTimePicker("field", model, SyncopeConsoleSession.get().getLocale(),
-                FastDateFormat.getDateInstance(DateFormat.SHORT, SyncopeConsoleSession.get().getLocale()).getPattern()
-                        .replace("yy", "yyyy"),
-                FastDateFormat.getTimeInstance(DateFormat.SHORT, SyncopeConsoleSession.get().getLocale()).getPattern());
+        Locale locale = SyncopeConsoleSession.get().getLocale();
+        field = new AjaxDateTimePicker(
+                "field",
+                model,
+                locale,
+                FastDateFormat.getDateInstance(DateFormat.SHORT, locale).getPattern().replace("yy", "yyyy"),
+                FastDateFormat.getTimeInstance(DateFormat.SHORT, locale).getPattern());
         add(field.setLabel(new ResourceModel(name, name)).setOutputMarkupId(true));
     }
 
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/DateFieldPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/DateFieldPanel.java
index ff8f4d9..99d2ad4 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/DateFieldPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/DateFieldPanel.java
@@ -23,6 +23,7 @@ import java.io.Serializable;
 import java.text.ParseException;
 import java.util.Date;
 import java.util.List;
+import java.util.Optional;
 import org.apache.commons.lang3.time.FastDateFormat;
 import org.apache.syncope.client.console.SyncopeConsoleSession;
 import org.apache.syncope.common.lib.to.AttributableTO;
@@ -55,7 +56,6 @@ public class DateFieldPanel extends FieldPanel<Date> {
             @Override
             public Date getObject() {
                 Date date = null;
-
                 if (list != null && !list.isEmpty() && StringUtils.hasText(list.get(0).toString())) {
                     try {
                         // Parse string using datePattern
@@ -116,7 +116,7 @@ public class DateFieldPanel extends FieldPanel<Date> {
             @Override
             @SuppressWarnings("unchecked")
             public void setObject(final Date object) {
-                item.setModelObject(object != null ? fmt.format(object) : null);
+                item.setModelObject(Optional.ofNullable(object).map(fmt::format).orElse(null));
             }
         };
 
@@ -124,17 +124,17 @@ public class DateFieldPanel extends FieldPanel<Date> {
         return this;
     }
 
-    @SuppressWarnings({ "unchecked", "rawtypes" })
-    public FieldPanel<Date> setNewModel(final AttributableTO attributableTO, final String schema) {
-        field.setModel(new Model() {
+    @Override
+    public FieldPanel<Date> setNewModel(final AttributableTO attributable, final String schema) {
+        field.setModel(new Model<Date>() {
 
             private static final long serialVersionUID = -4214654722524358000L;
 
             @Override
-            public Serializable getObject() {
-                if (!attributableTO.getPlainAttr(schema).get().getValues().isEmpty()) {
+            public Date getObject() {
+                if (!attributable.getPlainAttr(schema).get().getValues().isEmpty()) {
                     try {
-                        return fmt.parse(attributableTO.getPlainAttr(schema).get().getValues().get(0));
+                        return fmt.parse(attributable.getPlainAttr(schema).get().getValues().get(0));
                     } catch (ParseException ex) {
                         LOG.error("While parsing date", ex);
                     }
@@ -143,13 +143,12 @@ public class DateFieldPanel extends FieldPanel<Date> {
             }
 
             @Override
-            public void setObject(final Serializable object) {
-                attributableTO.getPlainAttr(schema).get().getValues().clear();
+            public void setObject(final Date object) {
+                attributable.getPlainAttr(schema).get().getValues().clear();
                 if (object != null) {
-                    attributableTO.getPlainAttr(schema).get().getValues().add(fmt.format(object));
+                    attributable.getPlainAttr(schema).get().getValues().add(fmt.format(object));
                 }
             }
-
         });
 
         return this;
@@ -159,6 +158,6 @@ public class DateFieldPanel extends FieldPanel<Date> {
     public void renderHead(final IHeaderResponse response) {
         super.renderHead(response);
         response.render(JavaScriptHeaderItem.forReference(
-                new KendoCultureResourceReference(SyncopeConsoleSession.get().getLocale())));
+                new KendoCultureResourceReference(getLocale())));
     }
 }
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DBPasswordPullActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DBPasswordPullActions.java
index 7d76887..74fa96c 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DBPasswordPullActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DBPasswordPullActions.java
@@ -18,14 +18,12 @@
  */
 package org.apache.syncope.core.provisioning.java.pushpull;
 
-import java.util.Optional;
 import org.apache.syncope.common.lib.patch.AnyPatch;
 import org.apache.syncope.common.lib.patch.PasswordPatch;
 import org.apache.syncope.common.lib.patch.UserPatch;
 import org.apache.syncope.common.lib.to.EntityTO;
 import org.apache.syncope.common.lib.to.UserTO;
 import org.apache.syncope.common.lib.types.CipherAlgorithm;
-import org.apache.syncope.common.lib.types.ConnConfProperty;
 import org.apache.syncope.core.persistence.api.dao.UserDAO;
 import org.apache.syncope.core.persistence.api.entity.ConnInstance;
 import org.apache.syncope.core.persistence.api.entity.user.User;
@@ -47,16 +45,16 @@ import org.springframework.transaction.annotation.Transactional;
  */
 public class DBPasswordPullActions implements PullActions {
 
-    private static final Logger LOG = LoggerFactory.getLogger(DBPasswordPullActions.class);
+    protected static final Logger LOG = LoggerFactory.getLogger(DBPasswordPullActions.class);
 
-    private static final String CLEARTEXT = "CLEARTEXT";
+    protected static final String CLEARTEXT = "CLEARTEXT";
 
     @Autowired
-    private UserDAO userDAO;
+    protected UserDAO userDAO;
 
-    private String encodedPassword;
+    protected String encodedPassword;
 
-    private CipherAlgorithm cipher;
+    protected CipherAlgorithm cipher;
 
     @Transactional(readOnly = true)
     @Override
@@ -85,7 +83,7 @@ public class DBPasswordPullActions implements PullActions {
         }
     }
 
-    private void parseEncodedPassword(final String password, final Connector connector) {
+    protected void parseEncodedPassword(final String password, final Connector connector) {
         if (password != null) {
             ConnInstance connInstance = connector.getConnInstance();
 
@@ -102,14 +100,12 @@ public class DBPasswordPullActions implements PullActions {
         }
     }
 
-    private String getCipherAlgorithm(final ConnInstance connInstance) {
-        Optional<ConnConfProperty> cipherAlgorithm = connInstance.getConf().stream().
+    protected String getCipherAlgorithm(final ConnInstance connInstance) {
+        return connInstance.getConf().stream().
                 filter(property -> "cipherAlgorithm".equals(property.getSchema().getName())
-                && property.getValues() != null && !property.getValues().isEmpty()).findFirst();
-
-        return cipherAlgorithm.isPresent()
-                ? (String) cipherAlgorithm.get().getValues().get(0)
-                : CLEARTEXT;
+                && property.getValues() != null && !property.getValues().isEmpty()).findFirst().
+                map(cipherAlgorithm -> cipherAlgorithm.getValues().get(0).toString()).
+                orElse(CLEARTEXT);
     }
 
     @Transactional
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPPasswordPullActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPPasswordPullActions.java
index 7a5f286..ea49d83 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPPasswordPullActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPPasswordPullActions.java
@@ -47,11 +47,11 @@ public class LDAPPasswordPullActions implements PullActions {
     protected static final Logger LOG = LoggerFactory.getLogger(LDAPPasswordPullActions.class);
 
     @Autowired
-    private UserDAO userDAO;
+    protected UserDAO userDAO;
 
-    private String encodedPassword;
+    protected String encodedPassword;
 
-    private CipherAlgorithm cipher;
+    protected CipherAlgorithm cipher;
 
     @Transactional(readOnly = true)
     @Override
@@ -80,7 +80,7 @@ public class LDAPPasswordPullActions implements PullActions {
         }
     }
 
-    private void parseEncodedPassword(final String password) {
+    protected void parseEncodedPassword(final String password) {
         if (password != null && password.startsWith("{")) {
             int closingBracketIndex = password.indexOf('}');
             String digest = password.substring(1, password.indexOf('}'));