spring-projects / spring-projects/spring-ldap

LDAP-305: Permit ODM to allow inheritance

Open
#340 8 comments 0 reactions 1 assignee View on GitHub

@jzheaux is already working on this.

Since Apr 22, 2021.

in: core type: enhancement
Dominant language
Java
Stars
375
Forks
501
Avg merge
6h 4m
Merged PRs (30d)
63

Description

Demétrius Jubé (Migrated from LDAP-305) said:

I was trying do use some inheritance when using ODM. Looking in the Internet, I found out this thread:
http://forum.spring.io/forum/spring-projects/data/ldap/129952-permit-odm-to-allow-inheritance

But I could not find anything here to make that modification, so I am opening an issue to it.

The solution Fneuch proposed was as follow:

Hi Guys,

First of all, sorry for any english mistake.

Secondly, is it me or ODM doesn't allow hierarchical inheritance? I've made a little change and it seems to work fine.

In the constructor of class ObjectMetaData I've replaced:

Code:

//Field[] fields = clazz.getDeclaredFields();

by

Code:

ArrayList<Field> fieldsTemp = new  ArrayList<>();
        fieldsTemp.addAll(Arrays.asList(clazz.getDeclaredFields()));
        Class<?> classTemp = clazz.getSuperclass();        
        while(!classTemp.equals(Object.class)) {
            fieldsTemp.addAll(Arrays.asList(classTemp.getDeclaredFields()));
          classTemp = classTemp.getSuperclass();            
        }
        // Get field meta-data - the @Attribute annotation
        Field[] fields = fieldsTemp.toArray(new Field[fieldsTemp.size()]);

Can you correct me here? Is there something that I didn't see? Because on create, find, delete I've seen no problem with my test... I didn't checkout project to made a full change, just replace the class in my own project for testing.

How can I ask for that feature in a future version? Thanks for any information!

Sylvain aka Fneuch

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.