Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None

      Description

      We need DAOs (Data Access Objects) for mapping LDAP entries to Java objects.

      The first version should just generate one DAO for one Java bean class and only map simple data types (no relationships between objects).

      The DAO should support basic CRUD operations:

      • T getById( String id ) - where id is the RDN attribute value
      • Collection<T> getAll()
      • create( T object)
      • update(T object)
      • delete(T object)

      Required parameters, to be added to wizard:

      • Container entry (by default the parent of the selected entry): for read operations this information is used as search base; for write operations this information is used to determine the DN of the entry.
      • Object classes of the LDAP entries (by default the object classes of the selected entry). For read operations this information is used to compose the search filter; for the create operation this information is used to set the object classes of the entry
      • The RDN attribute to use (by default the RDN attribute of the selected entry): this information is used to determine the RDN and DN of the entry
      • Connection parameters like hostname, port, encryption, bind DN, password (for default values this information can be obtained from IEntry.getBrowserConnection().getConnection()

      The new Apache Directory LDAP API should be used.

        Activity

        Stefan Seelmann created issue -
        Hide
        Stefan Seelmann added a comment -

        I added an example how a generated project could look like: http://code.google.com/p/dirstudio-ldap-tooling/source/detail?r=99

        • The com.example.domain.InetOrgPerson represents the generated Java bean. The used Java member names differ from the LDAP attribute names, the original LDAP attribute names are added as comments
        • The com.example.dao.GenericLdapDao is an abstrtract class and can be used as base for the generated DAO. It doesn't contain any dynamic code, so it can be used as is. It provides
        • The com.example.dao.InetOrgPersonDao represents the generated DAO class. It extends GenericLdapDao. In the constructor all required parameters in the super class are set. Additional the two mapToEntry and mapFromEntry must be generated.
        • the pom.xml contains a dependency to ldap-client-api 0.1
        Show
        Stefan Seelmann added a comment - I added an example how a generated project could look like: http://code.google.com/p/dirstudio-ldap-tooling/source/detail?r=99 The com.example.domain.InetOrgPerson represents the generated Java bean. The used Java member names differ from the LDAP attribute names, the original LDAP attribute names are added as comments The com.example.dao.GenericLdapDao is an abstrtract class and can be used as base for the generated DAO. It doesn't contain any dynamic code, so it can be used as is. It provides The com.example.dao.InetOrgPersonDao represents the generated DAO class. It extends GenericLdapDao. In the constructor all required parameters in the super class are set. Additional the two mapToEntry and mapFromEntry must be generated. the pom.xml contains a dependency to ldap-client-api 0.1
        Hide
        Stefan Seelmann added a comment -

        I just tested the existing code and saw that only generation for members of type "String" work, other types (int, long, boolean, Calendar) and multi-valued (Set, List, array) don't work.

        Show
        Stefan Seelmann added a comment - I just tested the existing code and saw that only generation for members of type "String" work, other types (int, long, boolean, Calendar) and multi-valued (Set, List, array) don't work.
        Hide
        Kasun Lakpriya added a comment -
        • As discussed with Stefan added Set as the only multi-valued type for now.
        • All the other data types are added.
        • Added some integration tests to check whether the generated code is correct or not.

        Latest revision : http://code.google.com/p/dirstudio-ldap-tooling/source/detail?r=113

        Show
        Kasun Lakpriya added a comment - As discussed with Stefan added Set as the only multi-valued type for now. All the other data types are added. Added some integration tests to check whether the generated code is correct or not. Latest revision : http://code.google.com/p/dirstudio-ldap-tooling/source/detail?r=113
        Show
        Kasun Lakpriya added a comment - Resolved : http://code.google.com/p/dirstudio-ldap-tooling/source/detail?r=113
        Kasun Lakpriya made changes -
        Field Original Value New Value
        Resolution Fixed [ 1 ]
        Status Open [ 1 ] Resolved [ 5 ]
        Hide
        Pierre-Arnaud Marcelot added a comment -

        Closed all resolved issues related to our GSoC projects.

        Show
        Pierre-Arnaud Marcelot added a comment - Closed all resolved issues related to our GSoC projects.
        Pierre-Arnaud Marcelot made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Unassigned
            Reporter:
            Stefan Seelmann
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development