ApacheDS中的自定义分区

时间:2011-12-14 22:08:23

标签: apacheds

我正在使用ApacheDS版本2.0.0-M3(我不太熟悉它是如何工作的)。我创建了一个新的分区类,扩展了AbstractPartition。我能够创建这个类的实例,并将其添加到ApacheDsService实例。

    File instancePath = new File( param[0] );
    ApacheDsService service = new ApacheDsService();
    InstanceLayout layout = new InstanceLayout( instancePath );

    try
    {
        service.start(layout);
        //
        TestPartition partition = new TestPartition ( layout );
        partition.setSuffix( "ou=test" );
        partition.setSchemaManager( service.getDirectoryService().getSchemaManager() );
        partition.initialize();
        service.getDirectoryService().addPartition( partition );
    }
    catch (Exception x)
    {
        LOG.error("Failed to start the service.", x);
        System.exit(1);
    }

但是,当我使用Apache Directory Studio连接到我的服务器时,我看不到我的分区。

我发现了这个问题:     How to create a partition in the root in ApacheDS server programmatically using JNDI/LDAP? 其中kayyagari说有必要“在ou = config区域配置分区...”。

我不确定这究竟是什么意思,并且没有太多运气在网上搜索细节。

我可以在Apache Directory Studio中看到ou = config分区。我可以在那里看到其他分区:ads-partitionId = system和ads-partitionId = example。查看objectClass属性,我可以看到这两个属性都有一个值为ads-jdbmPartition的值。我不确定我的分区是否应该有这样的条目(因为它不是jdbm分区,而是从Web服务获取其数据)。

(不幸的是,ApacheDS站点上2.0.0-M3的文档链接提供了404.)我的自定义分区的LDIF条目应如何显示?我无法做到正确,也不知道我是否遗漏了某些东西,或者我输错了什么。

任何帮助都将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:1)

ApacheDS版本2.0.0-M3(和2.0.0-M4)似乎正在进行中。根据{{​​3}}版本2.0.0-M3自2011年8月以来未见任何活动。2011年8月,提出了缺少文档的问题(参见:ApacheDS repository)。

从存储库中,您还可以看到当前正在使用版本2.0.0-M4(最近的活动)。有一些2.0.0-M3文档。 Broken link in web site ("Basic User's Guide" on ApacheDS 2.0 page)可用。也可以下载包含大量单元测试的2.0.0M3 Maven generated documentation,您可以使用它来破译正确的方法 - 源代码可以从2.0.0-M3 source code获得(但似乎不在ApacheDS站点本身)。 EmmanuelLécharny似乎是版本2.0.0-M3的主要提交者(而Kiran Ayyagari(Emmanuel Lécharny personal page)也似乎是ApacheDS提交者。)

希望您现在有足够的信息,如果您愿意,可以使用2.0.0-M3 / M4路线。


由于缺少2.x分支的文档,我认为使用ApacheDS 1.5.7版本会更加更容易(至少在记录2.x分支之前) )。 1.5.7版本包括文档和kayyagari,例如将ApacheDS嵌入到应用程序和Web应用程序中。

我尝试了working examples,并且能够使用Apache Directory Studio访问生成的目录服务器。有趣的是,对于嵌入式示例示例,包含embedded server sample文件的模块被排除在类路径之外(我的猜测是,这是因为该示例是最小的实现,而不是完全符合标准的LDAP服务器)。