You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by Stefan Seelmann <se...@apache.org> on 2010/08/06 10:14:18 UTC

[GSoC] Status update

Hi dev,

the GSoC 2010 is in it's final stage.

Kasun did a great job till now. From an existing entry it is possible
to generate a Java Bean class and a DAO class. The DAO class uses the
new LDAP API in version 0.1. In a wizard all required information is
collected from the user.

The 9th of August is "soft" pencils down date. Till this date the
project should be finished. I expect that all remaining issues [1] are
resolved till then.

The 16th of August is pencils down date. This week should be used to
to cleanup the code and to write some documentation.

Here is a random list what should be done till then:
- Code cleanup (e.g. remove code duplications)
- Some improvements in the wizard (e.g. re-arrange widgets, sort
attribute list, pre-select all attributes of the entry, exclude
objectClass attribute)
- Complete unit tests to cover core code
- Complete Javadoc
- Write a simple user guide

And some nice-to-have items, if there is time:
- Add unit tests to test that the generated code is correct
- Generate a maven project including a pom.xml with all required dependencies
- Generate test classes for the maven project (see example project)

I'll create new Jiras for those items.

Kind Regards,
Stefan

PS: I hope that Kasun will continue his good work after the GSoC
project. I have so many ideas for the future:
- Make the tool extensible so that wizards and templates for other
languages and LDAP APIs can be supported
- Add support for relationships between LDAP entries
- Analyze the whole DIT


[1] https://issues.apache.org/jira/browse/DIRSTUDIO/component/12313610

RE: Embedded sample question

Posted by "Benjamin, Roy" <rb...@ebay.com>.
Thank You Kiran!

I think I'm 'on a run' now.

Roy

-----Original Message-----
From: ayyagarikiran@gmail.com [mailto:ayyagarikiran@gmail.com] On Behalf Of Kiran Ayyagari
Sent: Saturday, August 07, 2010 1:56 AM
To: Apache Directory Developers List
Subject: Re: Embedded sample question

hi Roy,

On Sat, Aug 7, 2010 at 4:26 AM, Benjamin, Roy <rb...@ebay.com> wrote:
> HI,
>
>
>
> What I really need to do is to create a dc.
>
>
>
> I have tried:
>
>
>
>                   File pd = new File("C:\\doit");
>
>                   pd.mkdirs();
>
>                   JdbmPartition partition = null;
>
>                   try {
>
>                         JdbmPartitionFactory f = new JdbmPartitionFactory();
>
>                         partition = f.createPartition("sevenseas",
> "o=sevenseas", 500, pd);
>
>                         //partition.initialize();
>
>                         directoryService.addPartition(partition);
>
>                   } catch (Exception e) {
>
>                         e.printStackTrace();
>
>                   }
>
>
>
>                   directoryService.startup();
>
>                   ldapServer.start();
>
>
>
>                   try {
>
>                         // create the context entry
>
>                         Entry entry = new DefaultEntry(new
> DN("o=sevenseas"));
here you need to pass the schema manager while creating the entry
(this is required cause inside
the server every Attribute should be schema-aware)
so the above statement should be like
Entry entry = new DefaultEntry( directoryService.getSchemaManager(),
new DN("o=sevenseas"));

>
>                         entry.put("objectClass", "top",
> "organizationalUnit", "extensibleObject");
>
>                         entry.put("o", "sevenseas");
another mandatory attribute "ou" needs to added to the entry
             entry.put("ou", "sevenseas org unit");
>
>
>
>                         // add the context entry
>
>                         AddOperationContext adOpContext = new
> AddOperationContext(directoryService.getAdminSession(), entry);
>
>
> directoryService.getOperationManager().add(adOpContext);
>
>
> //directoryService.getPartitionNexus().addContextPartition(partition);
a simple way to do the same without creating a operation context object is
   directoryService.getAdminSession().add( entry );

btw, please post these questions to user ML, would be helpful for
others users if they are facing
similar issues

Kiran Ayyagari
>
>                   } catch (Exception e) {
>
>                         e.printStackTrace();
>
>                   }
>
>
>
>
>
> which gave me:
>
>
>
> schema partition directory exists, skipping schema extraction
>
> [15:54:06] WARN [org.apache.directory.server.core.DefaultDirectoryService] -
> You didn't change the admin password of directory service instance 'null'.
> Please update the admin password as soon as possible to prevent a possible
> security breach.
>
> [15:54:06] WARN
> [org.apache.directory.server.core.referral.ReferralInterceptor] - could not
> find objectClass attribute in entry: Entry
>
>     dn[n]: o=sevenseas
>
>     objectClass: top
>
>     objectClass: organizationalUnit
>
>     objectClass: extensibleObject
>
>     o: sevenseas
>
>
>
> [15:54:06] ERROR [org.apache.directory.server.core.schema.SchemaInterceptor]
> - ERR_60 Entry o=sevenseas does not contain a STRUCTURAL ObjectClass
>
> org.apache.directory.shared.ldap.exception.LdapSchemaViolationException:
> ERR_60 Entry o=sevenseas does not contain a STRUCTURAL ObjectClass
>
>       at
> org.apache.directory.server.core.schema.SchemaInterceptor.assertObjectClasses(SchemaInterceptor.java:1688)
>
>       at
> org.apache.directory.server.core.schema.SchemaInterceptor.check(SchemaInterceptor.java:1416)
>
>       at
> org.apache.directory.server.core.schema.SchemaInterceptor.add(SchemaInterceptor.java:1507)
>
>       at
> org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
>
>       at
> org.apache.directory.server.core.operational.OperationalAttributeInterceptor.add(OperationalAttributeInterceptor.java:236)
>
>       at
> org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
>
>       at
> org.apache.directory.server.core.changelog.ChangeLogInterceptor.add(ChangeLogInterceptor.java:105)
>
>       at
> org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
>
>       at
> org.apache.directory.server.core.exception.ExceptionInterceptor.add(ExceptionInterceptor.java:157)
>
>       at
> org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
>
>       at
> org.apache.directory.server.core.admin.AdministrativePointInterceptor.add(AdministrativePointInterceptor.java:339)
>
>       at
> org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
>
>       at
> org.apache.directory.server.core.interceptor.BaseInterceptor.add(BaseInterceptor.java:128)
>
>       at
> org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
>
>       at
> org.apache.directory.server.core.authz.AciAuthorizationInterceptor.add(AciAuthorizationInterceptor.java:420)
>
>       at
> org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
>
>       at
> org.apache.directory.server.core.referral.ReferralInterceptor.add(ReferralInterceptor.java:247)
>
>       at
> org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
>
>       at
> org.apache.directory.server.core.authn.AuthenticationInterceptor.add(AuthenticationInterceptor.java:314)
>
>       at
> org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
>
>       at
> org.apache.directory.server.core.normalization.NormalizationInterceptor.add(NormalizationInterceptor.java:118)
>
>       at
> org.apache.directory.server.core.interceptor.InterceptorChain.add(InterceptorChain.java:650)
>
>       at
> org.apache.directory.server.core.DefaultOperationManager.add(DefaultOperationManager.java:265)
>
>       at
> org.example.StartStopListener2.contextInitialized(StartStopListener2.java:108)
>
>       at
> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3795)
>
>       at
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4252)
>
>       at
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
>
>       at
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
>
>       at
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
>
>
>
> From: Benjamin, Roy [mailto:rbenjamin@ebay.com]
> Sent: Friday, August 06, 2010 2:32 PM
> To: Apache Directory Developers List
> Subject: Embedded sample question
>
>
>
> Hi,
>
>
>
> When I run ApacheDS embedded it has a root object:  Root DSE(3)
>
>
>
> Is this object a 'dc'  ?
>
>
>
> if so, when really is its name,   dc=Root  or dc=Root DSE,  or dc=Root
> DSE(3)
>
>
>
>
>
> Is it possible to change this and or create another dc using the API ?
>
>
>
> Thanks
>
>
>
> Roy

Re: Embedded sample question

Posted by Kiran Ayyagari <ka...@apache.org>.
hi Roy,

On Sat, Aug 7, 2010 at 4:26 AM, Benjamin, Roy <rb...@ebay.com> wrote:
> HI,
>
>
>
> What I really need to do is to create a dc.
>
>
>
> I have tried:
>
>
>
>                   File pd = new File("C:\\doit");
>
>                   pd.mkdirs();
>
>                   JdbmPartition partition = null;
>
>                   try {
>
>                         JdbmPartitionFactory f = new JdbmPartitionFactory();
>
>                         partition = f.createPartition("sevenseas",
> "o=sevenseas", 500, pd);
>
>                         //partition.initialize();
>
>                         directoryService.addPartition(partition);
>
>                   } catch (Exception e) {
>
>                         e.printStackTrace();
>
>                   }
>
>
>
>                   directoryService.startup();
>
>                   ldapServer.start();
>
>
>
>                   try {
>
>                         // create the context entry
>
>                         Entry entry = new DefaultEntry(new
> DN("o=sevenseas"));
here you need to pass the schema manager while creating the entry
(this is required cause inside
the server every Attribute should be schema-aware)
so the above statement should be like
Entry entry = new DefaultEntry( directoryService.getSchemaManager(),
new DN("o=sevenseas"));

>
>                         entry.put("objectClass", "top",
> "organizationalUnit", "extensibleObject");
>
>                         entry.put("o", "sevenseas");
another mandatory attribute "ou" needs to added to the entry
             entry.put("ou", "sevenseas org unit");
>
>
>
>                         // add the context entry
>
>                         AddOperationContext adOpContext = new
> AddOperationContext(directoryService.getAdminSession(), entry);
>
>
> directoryService.getOperationManager().add(adOpContext);
>
>
> //directoryService.getPartitionNexus().addContextPartition(partition);
a simple way to do the same without creating a operation context object is
   directoryService.getAdminSession().add( entry );

btw, please post these questions to user ML, would be helpful for
others users if they are facing
similar issues

Kiran Ayyagari
>
>                   } catch (Exception e) {
>
>                         e.printStackTrace();
>
>                   }
>
>
>
>
>
> which gave me:
>
>
>
> schema partition directory exists, skipping schema extraction
>
> [15:54:06] WARN [org.apache.directory.server.core.DefaultDirectoryService] -
> You didn't change the admin password of directory service instance 'null'.
> Please update the admin password as soon as possible to prevent a possible
> security breach.
>
> [15:54:06] WARN
> [org.apache.directory.server.core.referral.ReferralInterceptor] - could not
> find objectClass attribute in entry: Entry
>
>     dn[n]: o=sevenseas
>
>     objectClass: top
>
>     objectClass: organizationalUnit
>
>     objectClass: extensibleObject
>
>     o: sevenseas
>
>
>
> [15:54:06] ERROR [org.apache.directory.server.core.schema.SchemaInterceptor]
> - ERR_60 Entry o=sevenseas does not contain a STRUCTURAL ObjectClass
>
> org.apache.directory.shared.ldap.exception.LdapSchemaViolationException:
> ERR_60 Entry o=sevenseas does not contain a STRUCTURAL ObjectClass
>
>       at
> org.apache.directory.server.core.schema.SchemaInterceptor.assertObjectClasses(SchemaInterceptor.java:1688)
>
>       at
> org.apache.directory.server.core.schema.SchemaInterceptor.check(SchemaInterceptor.java:1416)
>
>       at
> org.apache.directory.server.core.schema.SchemaInterceptor.add(SchemaInterceptor.java:1507)
>
>       at
> org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
>
>       at
> org.apache.directory.server.core.operational.OperationalAttributeInterceptor.add(OperationalAttributeInterceptor.java:236)
>
>       at
> org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
>
>       at
> org.apache.directory.server.core.changelog.ChangeLogInterceptor.add(ChangeLogInterceptor.java:105)
>
>       at
> org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
>
>       at
> org.apache.directory.server.core.exception.ExceptionInterceptor.add(ExceptionInterceptor.java:157)
>
>       at
> org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
>
>       at
> org.apache.directory.server.core.admin.AdministrativePointInterceptor.add(AdministrativePointInterceptor.java:339)
>
>       at
> org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
>
>       at
> org.apache.directory.server.core.interceptor.BaseInterceptor.add(BaseInterceptor.java:128)
>
>       at
> org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
>
>       at
> org.apache.directory.server.core.authz.AciAuthorizationInterceptor.add(AciAuthorizationInterceptor.java:420)
>
>       at
> org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
>
>       at
> org.apache.directory.server.core.referral.ReferralInterceptor.add(ReferralInterceptor.java:247)
>
>       at
> org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
>
>       at
> org.apache.directory.server.core.authn.AuthenticationInterceptor.add(AuthenticationInterceptor.java:314)
>
>       at
> org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
>
>       at
> org.apache.directory.server.core.normalization.NormalizationInterceptor.add(NormalizationInterceptor.java:118)
>
>       at
> org.apache.directory.server.core.interceptor.InterceptorChain.add(InterceptorChain.java:650)
>
>       at
> org.apache.directory.server.core.DefaultOperationManager.add(DefaultOperationManager.java:265)
>
>       at
> org.example.StartStopListener2.contextInitialized(StartStopListener2.java:108)
>
>       at
> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3795)
>
>       at
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4252)
>
>       at
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
>
>       at
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
>
>       at
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
>
>
>
> From: Benjamin, Roy [mailto:rbenjamin@ebay.com]
> Sent: Friday, August 06, 2010 2:32 PM
> To: Apache Directory Developers List
> Subject: Embedded sample question
>
>
>
> Hi,
>
>
>
> When I run ApacheDS embedded it has a root object:  Root DSE(3)
>
>
>
> Is this object a 'dc'  ?
>
>
>
> if so, when really is its name,   dc=Root  or dc=Root DSE,  or dc=Root
> DSE(3)
>
>
>
>
>
> Is it possible to change this and or create another dc using the API ?
>
>
>
> Thanks
>
>
>
> Roy

RE: Embedded sample question

Posted by "Benjamin, Roy" <rb...@ebay.com>.
HI,

What I really need to do is to create a dc.

I have tried:

                  File pd = new File("C:\\doit");
                  pd.mkdirs();
                  JdbmPartition partition = null;
                  try {
                        JdbmPartitionFactory f = new JdbmPartitionFactory();
                        partition = f.createPartition("sevenseas", "o=sevenseas", 500, pd);
                        //partition.initialize();
                        directoryService.addPartition(partition);
                  } catch (Exception e) {
                        e.printStackTrace();
                  }

                  directoryService.startup();
                  ldapServer.start();

                  try {
                        // create the context entry
                        Entry entry = new DefaultEntry(new DN("o=sevenseas"));
                        entry.put("objectClass", "top", "organizationalUnit", "extensibleObject");
                        entry.put("o", "sevenseas");

                        // add the context entry
                        AddOperationContext adOpContext = new AddOperationContext(directoryService.getAdminSession(), entry);
                        directoryService.getOperationManager().add(adOpContext);
                        //directoryService.getPartitionNexus().addContextPartition(partition);
                  } catch (Exception e) {
                        e.printStackTrace();
                  }


which gave me:

schema partition directory exists, skipping schema extraction
[15:54:06] WARN [org.apache.directory.server.core.DefaultDirectoryService] - You didn't change the admin password of directory service instance 'null'.  Please update the admin password as soon as possible to prevent a possible security breach.
[15:54:06] WARN [org.apache.directory.server.core.referral.ReferralInterceptor] - could not find objectClass attribute in entry: Entry
    dn[n]: o=sevenseas
    objectClass: top
    objectClass: organizationalUnit
    objectClass: extensibleObject
    o: sevenseas

[15:54:06] ERROR [org.apache.directory.server.core.schema.SchemaInterceptor] - ERR_60 Entry o=sevenseas does not contain a STRUCTURAL ObjectClass
org.apache.directory.shared.ldap.exception.LdapSchemaViolationException: ERR_60 Entry o=sevenseas does not contain a STRUCTURAL ObjectClass
      at org.apache.directory.server.core.schema.SchemaInterceptor.assertObjectClasses(SchemaInterceptor.java:1688)
      at org.apache.directory.server.core.schema.SchemaInterceptor.check(SchemaInterceptor.java:1416)
      at org.apache.directory.server.core.schema.SchemaInterceptor.add(SchemaInterceptor.java:1507)
      at org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
      at org.apache.directory.server.core.operational.OperationalAttributeInterceptor.add(OperationalAttributeInterceptor.java:236)
      at org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
      at org.apache.directory.server.core.changelog.ChangeLogInterceptor.add(ChangeLogInterceptor.java:105)
      at org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
      at org.apache.directory.server.core.exception.ExceptionInterceptor.add(ExceptionInterceptor.java:157)
      at org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
      at org.apache.directory.server.core.admin.AdministrativePointInterceptor.add(AdministrativePointInterceptor.java:339)
      at org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
      at org.apache.directory.server.core.interceptor.BaseInterceptor.add(BaseInterceptor.java:128)
      at org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
      at org.apache.directory.server.core.authz.AciAuthorizationInterceptor.add(AciAuthorizationInterceptor.java:420)
      at org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
      at org.apache.directory.server.core.referral.ReferralInterceptor.add(ReferralInterceptor.java:247)
      at org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
      at org.apache.directory.server.core.authn.AuthenticationInterceptor.add(AuthenticationInterceptor.java:314)
      at org.apache.directory.server.core.interceptor.InterceptorChain$Element$1.add(InterceptorChain.java:1020)
      at org.apache.directory.server.core.normalization.NormalizationInterceptor.add(NormalizationInterceptor.java:118)
      at org.apache.directory.server.core.interceptor.InterceptorChain.add(InterceptorChain.java:650)
      at org.apache.directory.server.core.DefaultOperationManager.add(DefaultOperationManager.java:265)
      at org.example.StartStopListener2.contextInitialized(StartStopListener2.java:108)
      at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3795)
      at org.apache.catalina.core.StandardContext.start(StandardContext.java:4252)
      at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
      at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
      at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)

From: Benjamin, Roy [mailto:rbenjamin@ebay.com]
Sent: Friday, August 06, 2010 2:32 PM
To: Apache Directory Developers List
Subject: Embedded sample question

Hi,

When I run ApacheDS embedded it has a root object:  Root DSE(3)

Is this object a 'dc'  ?

if so, when really is its name,   dc=Root  or dc=Root DSE,  or dc=Root DSE(3)


Is it possible to change this and or create another dc using the API ?

Thanks

Roy

Embedded sample question

Posted by "Benjamin, Roy" <rb...@ebay.com>.
Hi,

When I run ApacheDS embedded it has a root object:  Root DSE(3)

Is this object a 'dc'  ?

if so, when really is its name,   dc=Root  or dc=Root DSE,  or dc=Root DSE(3)


Is it possible to change this and or create another dc using the API ?

Thanks

Roy

Re: [GSoC] Status update

Posted by Kasun Lakpriya <ka...@gmail.com>.
Hi dev, Stefan, Emmanuel,

Thanks a lot Stefan, Emmanuel for your comments, suggestions and
appreciation.

I will try my best to complete the remaining two Jiras by August 9th and
will complete unit tests for persistence-core for sure. And also if we can
finish those things before 16th of August we can look in to the improvements
as suggested by Stefan.

I really like to work with you all after the GSoC and will do for sure.

Thanks again for all of your help and guidance.

Regards,
Kasun

On Fri, Aug 6, 2010 at 2:54 PM, Emmanuel Lecharny <el...@gmail.com>wrote:

>  On 8/6/10 10:14 AM, Stefan Seelmann wrote:
>
>> Hi dev,
>>
> Hi Stefan, Kasun,
>
>  the GSoC 2010 is in it's final stage.
>>
>> Kasun did a great job till now. From an existing entry it is possible
>> to generate a Java Bean class and a DAO class. The DAO class uses the
>> new LDAP API in version 0.1. In a wizard all required information is
>> collected from the user.
>>
>> The 9th of August is "soft" pencils down date. Till this date the
>> project should be finished. I expect that all remaining issues [1] are
>> resolved till then.
>>
>> The 16th of August is pencils down date. This week should be used to
>> to cleanup the code and to write some documentation.
>>
>> Here is a random list what should be done till then:
>> - Code cleanup (e.g. remove code duplications)
>> - Some improvements in the wizard (e.g. re-arrange widgets, sort
>> attribute list, pre-select all attributes of the entry, exclude
>> objectClass attribute)
>> - Complete unit tests to cover core code
>> - Complete Javadoc
>> - Write a simple user guide
>>
>
> I would suggest starting with unit tests. They are the absolute guarantee
> that we can move on and modify the code without breaking it. Code cleanup is
> dangerous if we don't have unit tests.
>
> May I suggest we also tag the code when the 'soft' pencil down date is
> reached ? This would help if we need to revert some commits, if for instance
> we go too far in the cleanup and we don't have a running code, for instance
> :)
>
>  And some nice-to-have items, if there is time:
>> - Add unit tests to test that the generated code is correct
>> - Generate a maven project including a pom.xml with all required
>> dependencies
>> - Generate test classes for the maven project (see example project)
>>
>> I'll create new Jiras for those items.
>>
>
> Thanks a lot and great job from bot of you !
>
>  Kind Regards,
>> Stefan
>>
>> PS: I hope that Kasun will continue his good work after the GSoC
>> project. I have so many ideas for the future:
>> - Make the tool extensible so that wizards and templates for other
>> languages and LDAP APIs can be supported
>> - Add support for relationships between LDAP entries
>> - Analyze the whole DIT
>>
> yeah, my wish too. If things goes well, I also expect that it ends with a
> vote to grant Kasun commit access.
>
>
> --
>
> Regards,
> Cordialement,
> Emmanuel Lécharny
> www.iktek.com
>
>

Re: [GSoC] Status update

Posted by Emmanuel Lecharny <el...@gmail.com>.
  On 8/6/10 10:14 AM, Stefan Seelmann wrote:
> Hi dev,
Hi Stefan, Kasun,
> the GSoC 2010 is in it's final stage.
>
> Kasun did a great job till now. From an existing entry it is possible
> to generate a Java Bean class and a DAO class. The DAO class uses the
> new LDAP API in version 0.1. In a wizard all required information is
> collected from the user.
>
> The 9th of August is "soft" pencils down date. Till this date the
> project should be finished. I expect that all remaining issues [1] are
> resolved till then.
>
> The 16th of August is pencils down date. This week should be used to
> to cleanup the code and to write some documentation.
>
> Here is a random list what should be done till then:
> - Code cleanup (e.g. remove code duplications)
> - Some improvements in the wizard (e.g. re-arrange widgets, sort
> attribute list, pre-select all attributes of the entry, exclude
> objectClass attribute)
> - Complete unit tests to cover core code
> - Complete Javadoc
> - Write a simple user guide

I would suggest starting with unit tests. They are the absolute 
guarantee that we can move on and modify the code without breaking it. 
Code cleanup is dangerous if we don't have unit tests.

May I suggest we also tag the code when the 'soft' pencil down date is 
reached ? This would help if we need to revert some commits, if for 
instance we go too far in the cleanup and we don't have a running code, 
for instance :)
> And some nice-to-have items, if there is time:
> - Add unit tests to test that the generated code is correct
> - Generate a maven project including a pom.xml with all required dependencies
> - Generate test classes for the maven project (see example project)
>
> I'll create new Jiras for those items.

Thanks a lot and great job from bot of you !
> Kind Regards,
> Stefan
>
> PS: I hope that Kasun will continue his good work after the GSoC
> project. I have so many ideas for the future:
> - Make the tool extensible so that wizards and templates for other
> languages and LDAP APIs can be supported
> - Add support for relationships between LDAP entries
> - Analyze the whole DIT
yeah, my wish too. If things goes well, I also expect that it ends with 
a vote to grant Kasun commit access.


-- 

Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com


Re: [GSoC] Status update

Posted by Kasun Lakpriya <ka...@gmail.com>.
Hi Stefan,
Thanks for the clarification.

Regards,
Kasun

On Fri, Aug 6, 2010 at 9:54 PM, Stefan Seelmann <se...@apache.org> wrote:

> Hi again,
>
> > The 9th of August is "soft" pencils down date. Till this date the
> > project should be finished. I expect that all remaining issues [1] are
> > resolved till then.
> >
> > [1] https://issues.apache.org/jira/browse/DIRSTUDIO/component/12313610
> >
>
> I should clarify that I don't expect that DIRSTUDIO-644 has to be
> finished by Kasun till end of GSoC. This issue is the 'umbrella' Jira
> with the initial idea I had for an LDAP Persistence Tooling. To
> implement all the mentioned features takes by far longer than 3 month.
> Let's keep this Jira open, and after GSoC we can define new sub-tasks
> and implement the other features step by step. Sorry for the
> confusion.
>
> Kind Regards,
> Stefan
>

Re: [GSoC] Status update

Posted by Stefan Seelmann <se...@apache.org>.
Hi again,

> The 9th of August is "soft" pencils down date. Till this date the
> project should be finished. I expect that all remaining issues [1] are
> resolved till then.
>
> [1] https://issues.apache.org/jira/browse/DIRSTUDIO/component/12313610
>

I should clarify that I don't expect that DIRSTUDIO-644 has to be
finished by Kasun till end of GSoC. This issue is the 'umbrella' Jira
with the initial idea I had for an LDAP Persistence Tooling. To
implement all the mentioned features takes by far longer than 3 month.
Let's keep this Jira open, and after GSoC we can define new sub-tasks
and implement the other features step by step. Sorry for the
confusion.

Kind Regards,
Stefan