Apache Directory Server

Penrose can be installed as a service in Apache Directory Server (ADS).

Add the following tags into ADS's configuration file (server.xml):

<beans>

  <bean id="penroseFactory" class="org.safehaus.penrose.PenroseFactory" factory-method="getInstance"/>

  <bean id="penrose"
        factory-bean="penroseFactory" factory-method="createPenrose"
        init-method="start" destroy-method="stop">
    <constructor-arg><value>PENROSE_SERVER_HOME</value></constructor-arg>
  </bean>

  <bean id="penroseInterceptor" class="org.safehaus.penrose.ldap.PenroseInterceptor">
    <property name="penrose"><ref bean="penrose"/></property>
  </bean>

  <bean id="configuration" class="org.apache.directory.server.configuration.MutableServerStartupConfiguration">

    ...

    <property name="interceptorConfigurations">
      <list>

        <bean class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
          <property name="name"><value>penroseService</value></property>
          <property name="interceptor">
            <ref bean="penroseInterceptor"/>
          </property>
        </bean>

        ...

      </list>
    </property>

  </bean>

</beans>

Replace the PENROSE_SERVER_HOME above with the actual Penrose Server installation directory.

Then copy all jar files in PENROSE_SERVER_HOME/lib and PENROSE_SERVER_HOME/lib/ext into ADS's lib/ext directory.

See also the example in PENROSE_SERVER_HOME/samples/apacheds.