Hi Stefan,

A couple months back i managed to figure out something similar to what you did using org.apache.directory.server.unit.AbstractServerTest class. However apart from embedding apacheds, i would like to programatically create a partition (jdbm partition). I tried using DefaultDirectoryServer class as an example but i failed to get it going.

My problem seems to be I am unable to set the ServerEntry correctly during the creation of the partition. Also I realized that creating a partition can only be done after DirectoryService is started else the partitionNexus will not be initialized.

Below is my code.

Thanks in advance.

Regards
chung-onn


private void createPartition(String suffix,DefaultDirectoryService directoryService)
           throws Exception {
// My problem is here, not able to set up the ServerEntry correctly ServerEntry entry = new DefaultServerEntry( directoryService.getRegistries(), new LdapDN( "dc=technetium,dc=com") ); entry.put(SchemaConstants.OBJECT_CLASS_AT, SchemaConstants.TOP_OC, SchemaConstants.ORGANIZATIONAL_UNIT_OC );
       entry.put("dc","technetium");
directoryService.getPartitionNexus().add(new AddOperationContext(directoryService.getAdminSession(), entry));

       JdbmPartition tcPartition = new JdbmPartition();
       tcPartition.setId("technetium");
       tcPartition.setCacheSize(1000);

       // Create some indices
Set<Index<?,ServerEntry>> indexedAttrs = new HashSet<Index<?, ServerEntry>>(); indexedAttrs.add( new JdbmIndex<Object, ServerEntry>("objectClass"));
       indexedAttrs.add( new JdbmIndex<Object, ServerEntry>("o"));
       tcPartition.setIndexedAttributes( indexedAttrs );

       //Add suffix
       tcPartition.setSuffix(suffix);
       tcPartition.init(directoryService);
       directoryService.addPartition(tcPartition);

   }


Stefan Zoerner wrote:
Hi all,

after some valid complaints on this list about its outdated state I have updated the following documentation page http://directory.apache.org/apacheds/1.5/embedding-apacheds-as-a-web-application.html
in order to reflect the changes in 1.5.4.

Fo those of you you don't know the little article: It is a simple example on how to embed ApacheDS in a Java application.

Main difference: Creating, starting and stopping the server is easier now and feels more natural for me, because the directory service, the LDAP protocol adapter, which were always simply JavaBeans components, are now used as such. No JNDI configuration wizardry needed to act with the server.

Feel free to provide feedback, streamline the English phrases (this != nativeSpeaker) in the wiki etc.

I hope the example is now helpful again,
    Greetings from Hamburg,
        Stefan

Reply via email to