Dashboard > Mitosis > Documentation
Documentation
Added by Trustin Lee, last edited by Trustin Lee on Jun 30, 2005  (view change)
Labels: 
(None)


Setting Up

Mitosis is implemented as an Interceptor of Apache Directory Server. Therefore, you can simply insert Mitosis into your InterceptorChain:

// Get InterceptorChain configuration.
MutableStartupConfiguration startupCfg = new MutableStartupConfiguration();
List chainCfg = startupCfg.getInterceptorConfigurations();

// Create the configuration for ReplicationService
ReplicationConfiguration replicationCfg = new ReplicationConfiguration();
//// ReplicatId must be unique.
replicationCfg.setReplicaId( new ReplicaId( "instance_a" ) );
//// ServerPort is 7846 by default.
replicationCfg.setServerPort( 7846 );
//// Add only one replica here because Mitosis supports only dual-master replication for now.
replicationCfg.addPeerReplica( new Replica( "instance_b@peerhost.com:7846" ) );

// Create a new ReplicationService and configure it.
ReplicationService service = new ReplicationService();
service.setConfiguration( replicationCfg );

// Create an InterceptorConfiguration for ReplicationService
MutableInterceptorConfiguration interceptorCfg = new MutableInterceptorConfiguration();
interceptorCfg.setName( "replicationService" );
interceptorCfg.setInterceptor( service );

// Add the InterceptorConfiguration to chainCfg
chainCfg.add( interceptorCfg );

// Finish configuration by updating interceptor settings
startupCfg.setInterceptorConfigurations( chainCfg );
  • Make sure that ReplicationService is always at the end of the chain.
  • ReplicaId must not change.
  • You also have to configure the peer replica in the same manner.

Alternatively, you can use your spring beans XML file to initialize the InterceptorChain:

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

  <!-- Put other properties here -->    
  ...

  <!-- InterceptorChain settings -->
  <property name="interceptorConfigurations">
    <list>
      <!-- Begin of default interceptor settings -->
      <bean class="org.apache.ldap.server.configuration.MutableInterceptorConfiguration">
        <property name="name"><value>normalizationService</value></property>
        <property name="interceptor">
          <bean class="org.apache.ldap.server.normalization.NormalizationService" />
        </property>
      </bean>
      <bean class="org.apache.ldap.server.configuration.MutableInterceptorConfiguration">
        <property name="name"><value>authenticationService</value></property>
        <property name="interceptor">
          <bean class="org.apache.ldap.server.authn.AuthenticationService" />
        </property>
      </bean>
      <bean class="org.apache.ldap.server.configuration.MutableInterceptorConfiguration">
        <property name="name"><value>authorizationService</value></property>
        <property name="interceptor">
          <bean class="org.apache.ldap.server.authz.AuthorizationService" />
        </property>
      </bean>
      <bean class="org.apache.ldap.server.configuration.MutableInterceptorConfiguration">
        <property name="name"><value>exceptionService</value></property>
        <property name="interceptor">
          <bean class="org.apache.ldap.server.exception.ExceptionService" />
        </property>
      </bean>
      <bean class="org.apache.ldap.server.configuration.MutableInterceptorConfiguration">
        <property name="name"><value>schemaService</value></property>
        <property name="interceptor">
          <bean class="org.apache.ldap.server.schema.SchemaService" />
        </property>
      </bean>
      <bean class="org.apache.ldap.server.configuration.MutableInterceptorConfiguration">
        <property name="name"><value>operationalAttributeService</value></property>
        <property name="interceptor">
          <bean class="org.apache.ldap.server.operational.OperationalAttributeService" />
        </property>
      </bean>
      <!-- End of default interceptor settings -->

      <!-- ReplicateionService -->
      <bean class="org.apache.ldap.server.configuration.MutableInterceptorConfiguration">
        <property name="name"><value>replicationService</value></property>
        <property name="interceptor">
          <bean class="org.safehaus.mitosis.service.ReplicationService">
            <property name="configuration">
              <bean class="org.safehaus.mitosis.configuration.ReplicationConfiguration">
                <property name="replicaId"><value>instance_a</value></property>
                <property name="serverPort"><value>7846</value></property>
                <property name="peerReplicas"><value>instance_b@peerhost.com:7846</value></property>
              </bean>
            </property>
          </bean>
        </property>
      </bean>
    </list>
  </property>
</bean>
...

Known issues

Please take a look at Road Map to broswe known issues.

Site running on a free Atlassian Confluence Open Source Project License granted to Safehaus. Evaluate Confluence today.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5.4 Build:#809 Jun 12, 2007) - Bug/feature request - Contact Administrators