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 2019/11/28 09:43:49 UTC

[syncope] branch 2_1_X updated: [SYNCOPE-1511] Replace ToStringBuilder#reflectionToString with POJOHelper#serialize

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


The following commit(s) were added to refs/heads/2_1_X by this push:
     new c8a6b32  [SYNCOPE-1511] Replace ToStringBuilder#reflectionToString with POJOHelper#serialize
c8a6b32 is described below

commit c8a6b32a758806e4593170b97017668eb15305f2
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Thu Nov 28 10:43:38 2019 +0100

    [SYNCOPE-1511] Replace ToStringBuilder#reflectionToString with POJOHelper#serialize
---
 .../syncope/common/rest/api/beans/AuditQuery.java  | 11 ++++---
 .../org/apache/syncope/core/logic/AuditLogic.java  |  6 ++--
 .../provisioning/api/data/AuditDataBinder.java     |  3 +-
 .../provisioning/java/DefaultAuditManager.java     | 30 +++++++++----------
 .../java/data/AuditDataBinderImpl.java             | 20 +++++--------
 .../java/job/report/AuditReportlet.java            | 16 ++++------
 .../org/apache/syncope/fit/core/AuditITCase.java   | 34 +++++++++++-----------
 7 files changed, 53 insertions(+), 67 deletions(-)

diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AuditQuery.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AuditQuery.java
index cb05bb9..5523afa 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AuditQuery.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/AuditQuery.java
@@ -18,19 +18,19 @@
  */
 package org.apache.syncope.common.rest.api.beans;
 
-import org.apache.syncope.common.lib.types.AuditElements;
-
 import javax.ws.rs.QueryParam;
-
 import java.util.ArrayList;
 import java.util.List;
+import org.apache.syncope.common.lib.types.AuditElements;
 
 public class AuditQuery extends AbstractQuery {
 
     private static final long serialVersionUID = -2863334226169614417L;
 
     private String key;
+
     private final List<AuditElements.Result> results = new ArrayList<>();
+
     private final List<String> events = new ArrayList<>();
 
     public String getKey() {
@@ -76,8 +76,8 @@ public class AuditQuery extends AbstractQuery {
             return this;
         }
 
-        public Builder result(final String result) {
-            getInstance().getResults().add(AuditElements.Result.valueOf(result.toUpperCase()));
+        public Builder result(final AuditElements.Result result) {
+            getInstance().getResults().add(result);
             return this;
         }
 
@@ -96,5 +96,4 @@ public class AuditQuery extends AbstractQuery {
             return new AuditQuery();
         }
     }
-
 }
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/AuditLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/AuditLogic.java
index 29d081c..2b532f0 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/AuditLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/AuditLogic.java
@@ -55,10 +55,10 @@ public class AuditLogic extends AbstractTransactionalLogic<AuditEntryTO> {
 
         Integer count = auditDAO.count(key);
         List<AuditEntry> matching = auditDAO.findByEntityKey(key, page, size, results, events, orderByClauses);
-        List<AuditEntryTO> finalResults = matching.stream().
-                map(audit -> binder.returnAuditTO(binder.getAuditTO(audit))).
+        List<AuditEntryTO> searchResults = matching.stream().
+                map(binder::getAuditTO).
                 collect(Collectors.toList());
-        return Pair.of(count, finalResults);
+        return Pair.of(count, searchResults);
     }
 
     @Override
diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/data/AuditDataBinder.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/data/AuditDataBinder.java
index 81e3241..2f79388 100644
--- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/data/AuditDataBinder.java
+++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/data/AuditDataBinder.java
@@ -22,7 +22,6 @@ import org.apache.syncope.common.lib.to.AuditEntryTO;
 import org.apache.syncope.core.persistence.api.entity.AuditEntry;
 
 public interface AuditDataBinder {
-    AuditEntryTO getAuditTO(AuditEntry application);
 
-    AuditEntryTO returnAuditTO(AuditEntryTO user);
+    AuditEntryTO getAuditTO(AuditEntry auditEntry);
 }
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultAuditManager.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultAuditManager.java
index 0f9e169..d5b9df6 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultAuditManager.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultAuditManager.java
@@ -49,10 +49,10 @@ public class DefaultAuditManager implements AuditManager {
             final String subcategory,
             final String event) {
 
-        AuditEntry auditEntry = AuditEntryImpl.builder()
-            .who(who)
-            .logger(new AuditLoggerName(type, category, subcategory, event, Result.SUCCESS))
-            .build();
+        AuditEntry auditEntry = AuditEntryImpl.builder().
+                who(who).
+                logger(new AuditLoggerName(type, category, subcategory, event, Result.SUCCESS)).
+                build();
         org.apache.syncope.core.persistence.api.entity.Logger syncopeLogger =
                 loggerDAO.find(auditEntry.getLogger().toLoggerName());
         boolean auditRequested = syncopeLogger != null && syncopeLogger.getLevel() == LoggerLevel.DEBUG;
@@ -62,9 +62,9 @@ public class DefaultAuditManager implements AuditManager {
         }
 
         auditEntry = AuditEntryImpl.builder()
-            .who(who)
-            .logger(new AuditLoggerName(type, category, subcategory, event, Result.FAILURE))
-            .build();
+                .who(who)
+                .logger(new AuditLoggerName(type, category, subcategory, event, Result.FAILURE))
+                .build();
         syncopeLogger = loggerDAO.find(auditEntry.getLogger().toLoggerName());
         auditRequested = syncopeLogger != null && syncopeLogger.getLevel() == LoggerLevel.DEBUG;
 
@@ -104,14 +104,14 @@ public class DefaultAuditManager implements AuditManager {
             throwable = (Throwable) output;
         }
 
-        AuditEntry auditEntry = AuditEntryImpl.builder()
-            .who(who)
-            .logger(new AuditLoggerName(type, category, subcategory, event, condition))
-            .before(before)
-            .output(throwable == null ? output : throwable.getMessage())
-            .input(input)
-            .build();
-        
+        AuditEntry auditEntry = AuditEntryImpl.builder().
+                who(who).
+                logger(new AuditLoggerName(type, category, subcategory, event, condition)).
+                before(before).
+                output(throwable == null ? output : throwable.getMessage()).
+                input(input).
+                build();
+
         org.apache.syncope.core.persistence.api.entity.Logger syncopeLogger =
                 loggerDAO.find(auditEntry.getLogger().toLoggerName());
         if (syncopeLogger != null && syncopeLogger.getLevel() == LoggerLevel.DEBUG) {
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AuditDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AuditDataBinderImpl.java
index 5acbe34..8d74e11 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AuditDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AuditDataBinderImpl.java
@@ -21,11 +21,10 @@ package org.apache.syncope.core.provisioning.java.data;
 import java.util.Arrays;
 import java.util.Objects;
 import java.util.stream.Collectors;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
 import org.apache.syncope.common.lib.to.AuditEntryTO;
 import org.apache.syncope.core.persistence.api.entity.AuditEntry;
 import org.apache.syncope.core.provisioning.api.data.AuditDataBinder;
+import org.apache.syncope.core.provisioning.api.serialization.POJOHelper;
 import org.springframework.stereotype.Component;
 
 @Component
@@ -48,25 +47,20 @@ public class AuditDataBinderImpl implements AuditDataBinder {
         }
 
         if (auditEntry.getBefore() != null) {
-            auditTO.setBefore(ToStringBuilder.reflectionToString(auditEntry.getBefore(), ToStringStyle.JSON_STYLE));
+            auditTO.setBefore(POJOHelper.serialize(auditEntry.getBefore()));
         }
 
         if (auditEntry.getInput() != null) {
-            auditTO.getInputs().addAll(Arrays.stream(auditEntry.getInput())
-                .filter(Objects::nonNull)
-                .map(input -> ToStringBuilder.reflectionToString(input, ToStringStyle.JSON_STYLE))
-                .collect(Collectors.toList()));
+            auditTO.getInputs().addAll(Arrays.stream(auditEntry.getInput()).
+                    filter(Objects::nonNull).
+                    map(POJOHelper::serialize).
+                    collect(Collectors.toList()));
         }
 
         if (auditEntry.getOutput() != null) {
-            auditTO.setOutput(ToStringBuilder.reflectionToString(auditEntry.getOutput(), ToStringStyle.JSON_STYLE));
+            auditTO.setOutput(POJOHelper.serialize(auditEntry.getOutput()));
         }
 
         return auditTO;
     }
-
-    @Override
-    public AuditEntryTO returnAuditTO(final AuditEntryTO auditEntryTO) {
-        return auditEntryTO;
-    }
 }
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/AuditReportlet.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/AuditReportlet.java
index 3d9ddcb..82017c2 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/AuditReportlet.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/report/AuditReportlet.java
@@ -23,16 +23,14 @@ import java.util.Map;
 import java.util.concurrent.atomic.AtomicReference;
 import javax.sql.DataSource;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
 import org.apache.syncope.common.lib.report.AuditReportletConf;
 import org.apache.syncope.common.lib.report.ReportletConf;
+import org.apache.syncope.core.persistence.api.DomainsHolder;
+import org.apache.syncope.core.persistence.api.dao.AuditDAO;
 import org.apache.syncope.core.persistence.api.entity.AuditEntry;
 import org.apache.syncope.core.provisioning.api.AuditEntryImpl;
 import org.apache.syncope.core.spring.security.AuthContextUtils;
 import org.apache.syncope.core.provisioning.api.serialization.POJOHelper;
-import org.apache.syncope.core.persistence.api.DomainsHolder;
-import org.apache.syncope.core.persistence.api.dao.AuditDAO;
 import org.apache.syncope.core.persistence.api.dao.ReportletConfClass;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
@@ -90,8 +88,7 @@ public class AuditReportlet extends AbstractReportlet {
             handler.endElement("", "", "logger");
 
             if (auditEntry.getBefore() != null) {
-                char[] before = ToStringBuilder.reflectionToString(
-                        auditEntry.getBefore(), ToStringStyle.JSON_STYLE).toCharArray();
+                char[] before = POJOHelper.serialize(auditEntry.getBefore()).toCharArray();
                 handler.startElement("", "", "before", null);
                 handler.characters(before, 0, before.length);
                 handler.endElement("", "", "before");
@@ -100,8 +97,7 @@ public class AuditReportlet extends AbstractReportlet {
             if (auditEntry.getInput() != null) {
                 handler.startElement("", "", "inputs", null);
                 for (Object inputObj : auditEntry.getInput()) {
-                    char[] input = ToStringBuilder.reflectionToString(
-                            inputObj, ToStringStyle.JSON_STYLE).toCharArray();
+                    char[] input = POJOHelper.serialize(inputObj).toCharArray();
                     handler.startElement("", "", "input", null);
                     handler.characters(input, 0, input.length);
                     handler.endElement("", "", "input");
@@ -110,8 +106,7 @@ public class AuditReportlet extends AbstractReportlet {
             }
 
             if (auditEntry.getOutput() != null) {
-                char[] output = ToStringBuilder.reflectionToString(
-                        auditEntry.getOutput(), ToStringStyle.JSON_STYLE).toCharArray();
+                char[] output = POJOHelper.serialize(auditEntry.getOutput()).toCharArray();
                 handler.startElement("", "", "output", null);
                 handler.characters(output, 0, output.length);
                 handler.endElement("", "", "output");
@@ -149,5 +144,4 @@ public class AuditReportlet extends AbstractReportlet {
 
         doExtractConf(handler, status);
     }
-
 }
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuditITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuditITCase.java
index 1421773..b7eaeec 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuditITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuditITCase.java
@@ -18,20 +18,20 @@
  */
 package org.apache.syncope.fit.core;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.fail;
+
 import java.util.Collections;
 import java.util.List;
 import org.apache.syncope.common.lib.to.AuditEntryTO;
 import org.apache.syncope.common.lib.to.GroupTO;
-import org.apache.syncope.common.lib.to.PagedResult;
-import org.apache.syncope.common.lib.to.ProvisioningResult;
 import org.apache.syncope.common.lib.to.UserTO;
 import org.apache.syncope.common.lib.types.AuditElements;
 import org.apache.syncope.common.rest.api.beans.AuditQuery;
 import org.apache.syncope.fit.AbstractITCase;
 import org.junit.jupiter.api.Test;
 
-import static org.junit.jupiter.api.Assertions.*;
-
 public class AuditITCase extends AbstractITCase {
 
     private AuditEntryTO query(final AuditQuery query, final int maxWaitSeconds) {
@@ -59,9 +59,9 @@ public class AuditITCase extends AbstractITCase {
         UserTO userTO = createUser(UserITCase.getUniqueSampleTO("audit@syncope.org")).getEntity();
         assertNotNull(userTO.getKey());
 
-        AuditQuery query = new AuditQuery.Builder()
-            .key(userTO.getKey()).orderBy("event_date desc")
-            .page(1).size(1).build();
+        AuditQuery query = new AuditQuery.Builder().
+                key(userTO.getKey()).orderBy("event_date desc").
+                page(1).size(1).build();
         AuditEntryTO entry = query(query, 50);
         assertEquals(userTO.getKey(), entry.getKey());
         userService.delete(userTO.getKey());
@@ -72,14 +72,14 @@ public class AuditITCase extends AbstractITCase {
         UserTO userTO = createUser(UserITCase.getUniqueSampleTO("audit-2@syncope.org")).getEntity();
         assertNotNull(userTO.getKey());
 
-        AuditQuery query = new AuditQuery.Builder()
-            .key(userTO.getKey())
-            .orderBy("event_date desc")
-            .page(1)
-            .size(1)
-            .events(Collections.singletonList("create"))
-            .results(Collections.singletonList(AuditElements.Result.SUCCESS))
-            .build();
+        AuditQuery query = new AuditQuery.Builder().
+                key(userTO.getKey()).
+                orderBy("event_date desc").
+                page(1).
+                size(1).
+                event("create").
+                result(AuditElements.Result.SUCCESS).
+                build();
         AuditEntryTO entry = query(query, 50);
         assertEquals(userTO.getKey(), entry.getKey());
         userService.delete(userTO.getKey());
@@ -91,8 +91,8 @@ public class AuditITCase extends AbstractITCase {
         assertNotNull(groupTO.getKey());
 
         AuditQuery query = new AuditQuery.Builder()
-            .key(groupTO.getKey()).orderBy("event_date desc")
-            .page(1).size(1).build();
+                .key(groupTO.getKey()).orderBy("event_date desc")
+                .page(1).size(1).build();
         AuditEntryTO entry = query(query, 50);
         assertEquals(groupTO.getKey(), entry.getKey());
         groupService.delete(groupTO.getKey());