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