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 62102ef4b777e1bc7df6def6c701d8d77a196f8a
Author: Francesco Chicchiriccò <ilgro...@apache.org>
AuthorDate: Fri Nov 16 08:43:31 2018 +0100

    [SYNCOPE-1392] Small reflection avoidance
---
 .../persistence/jpa/dao/AbstractAnySearchDAO.java    | 20 +++++---------------
 .../core/persistence/jpa/dao/JPAAnySearchDAO.java    |  2 --
 2 files changed, 5 insertions(+), 17 deletions(-)

diff --git 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnySearchDAO.java
 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnySearchDAO.java
index e09ff63..43800e2 100644
--- 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnySearchDAO.java
+++ 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnySearchDAO.java
@@ -20,7 +20,6 @@ package org.apache.syncope.core.persistence.jpa.dao;
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Field;
-import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -30,7 +29,6 @@ import javax.validation.ValidationException;
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Min;
 import org.apache.commons.lang3.ArrayUtils;
-import org.apache.commons.lang3.ClassUtils;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.commons.lang3.tuple.Triple;
 import org.apache.syncope.common.lib.SyncopeConstants;
@@ -55,7 +53,6 @@ import 
org.apache.syncope.core.persistence.api.dao.search.SearchCond;
 import org.apache.syncope.core.persistence.api.entity.Any;
 import org.apache.syncope.core.persistence.api.entity.AnyUtils;
 import org.apache.syncope.core.persistence.api.entity.AnyUtilsFactory;
-import org.apache.syncope.core.persistence.api.entity.Entity;
 import org.apache.syncope.core.persistence.api.entity.EntityFactory;
 import org.apache.syncope.core.persistence.api.entity.PlainAttrValue;
 import org.apache.syncope.core.persistence.api.entity.PlainSchema;
@@ -71,6 +68,8 @@ public abstract class AbstractAnySearchDAO extends 
AbstractDAO<Any<?>> implement
         "serialVersionUID", "password", "securityQuestion", "securityAnswer", 
"token", "tokenExpireTime"
     };
 
+    protected static final String[] RELATIONSHIP_FIELDS = new String[] { 
"realm", "userOwner", "groupOwner" };
+
     @Autowired
     protected RealmDAO realmDAO;
 
@@ -214,18 +213,9 @@ public abstract class AbstractAnySearchDAO extends 
AbstractDAO<Any<?>> implement
         }
 
         // Deal with any fields representing relationships to other entities
-        if (Entity.class.isAssignableFrom(anyField.getType())) {
-            Method relMethod = null;
-            try {
-                relMethod = ClassUtils.getPublicMethod(anyField.getType(), 
"getKey", new Class<?>[0]);
-            } catch (Exception e) {
-                LOG.error("Could not find {}#getKey", anyField.getType(), e);
-            }
-
-            if (relMethod != null && 
String.class.isAssignableFrom(relMethod.getReturnType())) {
-                computed.setSchema(computed.getSchema() + "_id");
-                schema.setType(AttrSchemaType.String);
-            }
+        if (ArrayUtils.contains(RELATIONSHIP_FIELDS, computed.getSchema())) {
+            computed.setSchema(computed.getSchema() + "_id");
+            schema.setType(AttrSchemaType.String);
         }
 
         PlainAttrValue attrValue = anyUtils.newPlainAttrValue();
diff --git 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
index 5810207..02e2535 100644
--- 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
+++ 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
@@ -65,8 +65,6 @@ public class JPAAnySearchDAO extends AbstractAnySearchDAO {
 
     protected static final String EMPTY_QUERY = "SELECT any_id FROM 
user_search WHERE 1=2";
 
-    protected static final String[] RELATIONSHIP_FIELDS = new String[] { 
"realm", "userOwner", "groupOwner" };
-
     private Pair<String, Set<String>> getAdminRealmsFilter(
             final Set<String> adminRealms,
             final SearchSupport svs,

Reply via email to