001 /*
002 * CDDL HEADER START
003 *
004 * The contents of this file are subject to the terms of the
005 * Common Development and Distribution License, Version 1.0 only
006 * (the "License"). You may not use this file except in compliance
007 * with the License.
008 *
009 * You can obtain a copy of the license at
010 * docs/licenses/cddl.txt
011 * or http://www.opensource.org/licenses/cddl1.php.
012 * See the License for the specific language governing permissions
013 * and limitations under the License.
014 *
015 * When distributing Covered Code, include this CDDL HEADER in each
016 * file and include the License file at
017 * docs/licenses/cddl.txt. If applicable,
018 * add the following below this CDDL HEADER, with the fields enclosed
019 * by brackets "[]" replaced with your own identifying information:
020 * Portions Copyright [yyyy] [name of copyright owner]
021 *
022 * CDDL HEADER END
023 *
024 *
025 * Copyright 2010-2013 UnboundID Corp.
026 */
027 package com.unboundid.directory.sdk.sync.config;
028
029
030
031 import java.util.Set;
032
033 import com.unboundid.util.NotExtensible;
034 import com.unboundid.util.ThreadSafety;
035 import com.unboundid.util.ThreadSafetyLevel;
036
037
038
039 /**
040 * This interface defines a set of methods that may be used to obtain
041 * information about the general configuration for a JDBC Sync Source.
042 */
043 @NotExtensible()
044 @ThreadSafety(level=ThreadSafetyLevel.INTERFACE_NOT_THREADSAFE)
045 public interface JDBCSyncSourceConfig
046 extends GenericSyncConfig
047 {
048 /**
049 * Gets the description for this Sync Source.
050 * @return the description, or null if there is none set.
051 */
052 String getDescription();
053
054 /**
055 * Gets the maximum number of connections that the Sync Source
056 * is allowed to have open to the database at a given time.
057 * @return an integer between 1 and 1000
058 */
059 int getMaxOpenConnections();
060
061 /**
062 * Gets the list of configured database entry types that are used
063 * to uniquely identify a set of data in the database that makes up
064 * an LDAP entry. Changes that do not match one of these entry types
065 * are dropped by the sync source.
066 * @return a set of database entry types
067 */
068 Set<String> getDatabaseEntryType();
069
070 /**
071 * Gets the configured users from which detected changes will be ignored.
072 * <p>
073 * This is particularly useful when using the Synchronization Server to sync
074 * changes back to this source (i.e. bi-directional sync).
075 * In this case, a unique user account would be used by the Sync Pipe that
076 * applies changes to this source, and that user would be in this list to
077 * prevent those changes from being synchronized back to their original
078 * source.
079 * @return the set of database login names from which changes will be ignored
080 */
081 Set<String> getIgnoreChangesByUser();
082
083 /**
084 * Gets the configured amount of time (in milliseconds) after which changelog
085 * entries should be deleted from the changelog or corresponding table in the
086 * database.
087 * @return a long value that is greater than or equal to 1
088 */
089 long getChangelogMaximumAge();
090 }