blob: 10828d807c6acc9e50c6a8a9fc788688ba406f6e [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
package org.apache.directory.server.config.beans;
import java.util.ArrayList;
import java.util.List;
import org.apache.directory.api.ldap.model.constants.SchemaConstants;
import org.apache.directory.server.config.ConfigurationElement;
/**
* A class used to store the Replication Consumer configuration.
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
public class ReplConsumerBean extends AdsBaseBean
{
/** The consumer id */
@ConfigurationElement(attributeType = SchemaConstants.ADS_REPL_CONSUMER_ID, isRdn = true)
private String replConsumerId;
/** The Search Base Dn */
@ConfigurationElement(attributeType = SchemaConstants.ADS_SEARCH_BASE_DN)
private String searchBaseDn;
/** The replication provider host name */
@ConfigurationElement(attributeType = SchemaConstants.ADS_REPL_PROV_HOST_NAME)
private String replProvHostName;
/** The replication provider port */
@ConfigurationElement(attributeType = SchemaConstants.ADS_REPL_PROV_PORT)
private int replProvPort;
/** The Alias Dereferencing mode */
@ConfigurationElement(attributeType = SchemaConstants.ADS_REPL_ALIAS_DEREF_MODE)
private String replAliasDerefMode;
/** The replication provider attribute */
@ConfigurationElement(attributeType = SchemaConstants.ADS_REPL_ATTRIBUTES)
private List<String> replAttributes = new ArrayList<String>();
/** The refresh interval */
@ConfigurationElement(attributeType = SchemaConstants.ADS_REPL_REFRESH_INTERVAL)
private long replRefreshInterval;
/** Tells if we should persist */
@ConfigurationElement(attributeType = SchemaConstants.ADS_REPL_REFRESH_N_PERSIST)
private boolean replRefreshNPersist;
/** The search scope */
@ConfigurationElement(attributeType = SchemaConstants.ADS_REPL_SEARCH_SCOPE)
private String replSearchScope;
/** The replication search filter */
@ConfigurationElement(attributeType = SchemaConstants.ADS_REPL_SEARCH_FILTER)
private String replSearchFilter;
/** The search size limit */
@ConfigurationElement(attributeType = SchemaConstants.ADS_REPL_SEARCH_SIZE_LIMIT)
private int replSearchSizeLimit;
/** The search time limit */
@ConfigurationElement(attributeType = SchemaConstants.ADS_REPL_SEARCH_TIMEOUT)
private int replSearchTimeout;
/** The replication user Dn */
@ConfigurationElement(attributeType = SchemaConstants.ADS_REPL_USER_DN)
private String replUserDn;
/** The replication user password */
@ConfigurationElement(attributeType = SchemaConstants.ADS_REPL_USER_PASSWORD)
private byte[] replUserPassword;
/** The replication cookie */
@ConfigurationElement(attributeType = SchemaConstants.ADS_REPL_COOKIE, isOptional = true)
private String replCookie;
/** Tells if TLS should be used during replication */
@ConfigurationElement(attributeType = SchemaConstants.ADS_REPL_USE_TLS, isOptional = true)
private boolean replUseTls;
/** Tells if the certificate validation should be strict or not */
@ConfigurationElement(attributeType = SchemaConstants.ADS_REPL_STRICT_CERT_VALIDATION, isOptional = true)
private boolean replStrictCertValidation;
/** The FQCN of replication client implementation */
@ConfigurationElement(attributeType = SchemaConstants.ADS_REPL_CONSUMER_IMPL, isOptional = true)
private String replConsumerImpl;
/**
* Create a new Replication Consumer instance
*/
public ReplConsumerBean()
{
super();
// Enabled by default
setEnabled( true );
}
/**
* @return the replConsumerId
*/
public String getReplConsumerId()
{
return replConsumerId;
}
/**
* @param replConsumerId the replication consumer id to set
*/
public void setReplConsumerId( String replConsumerId )
{
this.replConsumerId = replConsumerId;
}
/**
* @return the searchBaseDn
*/
public String getSearchBaseDn()
{
return searchBaseDn;
}
/**
* @param searchBaseDN the searchBaseDn to set
*/
public void setSearchBaseDn( String searchBaseDn )
{
this.searchBaseDn = searchBaseDn;
}
/**
* @return the replProvHostName
*/
public String getReplProvHostName()
{
return replProvHostName;
}
/**
* @param replProvHostName the replProvHostName to set
*/
public void setReplProvHostName( String replProvHostName )
{
this.replProvHostName = replProvHostName;
}
/**
* @return the replProvPort
*/
public int getReplProvPort()
{
return replProvPort;
}
/**
* @param replProvPort the replProvPort to set
*/
public void setReplProvPort( int replProvPort )
{
this.replProvPort = replProvPort;
}
/**
* @return the replAliasDerefMode
*/
public String getReplAliasDerefMode()
{
return replAliasDerefMode;
}
/**
* @param replAliasDerefMode the replAliasDerefMode to set
*/
public void setReplAliasDerefMode( String replAliasDerefMode )
{
this.replAliasDerefMode = replAliasDerefMode;
}
/**
* @return the replAttributes
*/
public List<String> getReplAttributes()
{
return replAttributes;
}
/**
* @param replAttributes the replAttribute to set
*/
public void setReplAttributes( List<String> replAttributes )
{
this.replAttributes = replAttributes;
}
/**
* @param replAttributes the replAttribute to add
*/
public void addReplAttributes( String... replAttributes )
{
for ( String at : replAttributes )
{
this.replAttributes.add( at );
}
}
/**
* @return the replRefreshInterval
*/
public long getReplRefreshInterval()
{
return replRefreshInterval;
}
/**
* @param replRefreshInterval the replRefreshInterval to set
*/
public void setReplRefreshInterval( long replRefreshInterval )
{
this.replRefreshInterval = replRefreshInterval;
}
/**
* @return the replRefreshNPersist
*/
public boolean isReplRefreshNPersist()
{
return replRefreshNPersist;
}
/**
* @param replRefreshNPersist the replRefreshNPersist to set
*/
public void setReplRefreshNPersist( boolean replRefreshNPersist )
{
this.replRefreshNPersist = replRefreshNPersist;
}
/**
* @return the replSearchScope
*/
public String getReplSearchScope()
{
return replSearchScope;
}
/**
* @param replSearchScope the replSearchScope to set
*/
public void setReplSearchScope( String replSearchScope )
{
this.replSearchScope = replSearchScope;
}
/**
* @return the replSearchFilter
*/
public String getReplSearchFilter()
{
return replSearchFilter;
}
/**
* @param replSearchFilter the replSearchFilter to set
*/
public void setReplSearchFilter( String replSearchFilter )
{
this.replSearchFilter = replSearchFilter;
}
/**
* @return the replSearchSizeLimit
*/
public int getReplSearchSizeLimit()
{
return replSearchSizeLimit;
}
/**
* @param replSearchSizeLimit the replSearchSizeLimit to set
*/
public void setReplSearchSizeLimit( int replSearchSizeLimit )
{
this.replSearchSizeLimit = replSearchSizeLimit;
}
/**
* @return the replSearchTimeOut
*/
public int getReplSearchTimeout()
{
return replSearchTimeout;
}
/**
* @param replSearchTimeout the replSearchTimeout to set
*/
public void setReplSearchTimeout( int replSearchTimeout )
{
this.replSearchTimeout = replSearchTimeout;
}
/**
* @return the replUserDn
*/
public String getReplUserDn()
{
return replUserDn;
}
/**
* @param replUserDn the replUserDn to set
*/
public void setReplUserDn( String replUserDn )
{
this.replUserDn = replUserDn;
}
/**
* @return the replUserPassword
*/
public byte[] getReplUserPassword()
{
return replUserPassword;
}
/**
* @param replUserPassword the replUserPassword to set
*/
public void setReplUserPassword( byte[] replUserPassword )
{
this.replUserPassword = replUserPassword;
}
/**
* @return the replCookie
*/
public String getReplCookie()
{
return replCookie;
}
/**
* @param replCookie the replCookie to set
*/
public void setReplCookie( String replCookie )
{
this.replCookie = replCookie;
}
/**
* @return the replUseTls
*/
public boolean isReplUseTls()
{
return replUseTls;
}
/**
* @param replUseTls the replUseTls to set
*/
public void setReplUseTls( boolean replUseTls )
{
this.replUseTls = replUseTls;
}
/**
* @return the replStrictCertValidation
*/
public boolean isReplStrictCertValidation()
{
return replStrictCertValidation;
}
/**
* @param replStrictCertValidation the replStrictCertValidation to set
*/
public void setReplStrictCertValidation( boolean replStrictCertValidation )
{
this.replStrictCertValidation = replStrictCertValidation;
}
/**
* @return the replConsumerImpl
*/
public String getReplConsumerImpl()
{
return replConsumerImpl;
}
/**
* @param replConsumerImpl the replConsumerImpl to set
*/
public void setReplConsumerImpl( String replConsumerImpl )
{
this.replConsumerImpl = replConsumerImpl;
}
/**
* {@inheritDoc}
*/
public String toString( String tabs )
{
StringBuilder sb = new StringBuilder();
sb.append( tabs ).append( "Replication provider :\n" );
sb.append( super.toString( tabs + " " ) );
sb.append( tabs ).append( " provider ID : " ).append( replConsumerId ).append( '\n' );
sb.append( tabs ).append( " search base Dn : " ).append( searchBaseDn ).append( '\n' );
sb.append( tabs ).append( " provider host name : " ).append( replProvHostName ).append( '\n' );
sb.append( tabs ).append( " provider port : " ).append( replProvPort ).append( '\n' );
sb.append( toString( tabs, " alias dereferencing mode", replAliasDerefMode ) );
sb.append( toString( tabs, " attributes", String.valueOf( replAttributes ) ) );
sb.append( tabs ).append( " refresh interval : " ).append( replRefreshInterval ).append( '\n' );
sb.append( toString( tabs, " refresh and persist mode", replRefreshNPersist ) );
sb.append( toString( tabs, " search scope", replSearchScope ) );
sb.append( toString( tabs, " search filter", replSearchFilter ) );
sb.append( tabs ).append( " search size limit : " ).append( replSearchSizeLimit ).append( '\n' );
sb.append( tabs ).append( " search time limit : " ).append( replSearchTimeout ).append( '\n' );
sb.append( toString( tabs, " user Dn", replUserDn ) );
sb.append( toString( tabs, " user password", String.valueOf( replUserPassword ) ) ); // do not reveal the password, just null or not
sb.append( toString( tabs, " cookie", replCookie ) );
sb.append( tabs ).append( " consumer implementation's FQCN : " ).append( replConsumerImpl ).append( '\n' );
sb.append( toString( tabs, " struct certivicate validation", replStrictCertValidation ) );
sb.append( toString( tabs, " use TLS", replUseTls ) );
return sb.toString();
}
/**
* {@inheritDoc}
*/
public String toString()
{
return toString( "" );
}
}