com.waveset.adapter
Class LDAPListenerActiveSyncAdapter

java.lang.Object
  extended bycom.waveset.adapter.ResourceAdapterBase
      extended bycom.waveset.adapter.LDAPResourceAdapterBase
          extended bycom.waveset.adapter.LDAPResourceAdapter
              extended bycom.waveset.adapter.LDAPActiveSyncAdapterBase
                  extended bycom.waveset.adapter.LDAPListenerActiveSyncAdapter
All Implemented Interfaces:
ActiveSync, java.util.EventListener, javax.naming.event.NamespaceChangeListener, javax.naming.event.NamingListener, javax.naming.event.ObjectChangeListener, ResourceAdapter

public class LDAPListenerActiveSyncAdapter
extends LDAPActiveSyncAdapterBase
implements javax.naming.event.NamespaceChangeListener, javax.naming.event.ObjectChangeListener

This is the base class for LDAP Active Sync adapters. It has the basic methods implemented for propogating changes - derived classes need to implement at least the method getUpdateRows to return changed objects that need to be synchronized. They also need to implement the staticCreatePrototypeResource method to provide XML for a blank resource. The updates that are received will be fetched from the LDAP server and an IAPI update built and submitted.


Nested Class Summary
 
Nested classes inherited from class com.waveset.adapter.LDAPActiveSyncAdapterBase
LDAPActiveSyncAdapterBase.UpdateRow, LDAPActiveSyncAdapterBase.UpdateRows
 
Nested classes inherited from class com.waveset.adapter.LDAPResourceAdapterBase
LDAPResourceAdapterBase.AcctIter, LDAPResourceAdapterBase.BlockAcctIter, LDAPResourceAdapterBase.VLVAcctIter
 
Nested classes inherited from class com.waveset.adapter.ResourceAdapterBase
ResourceAdapterBase.SimpleAccountIterator
 
Nested classes inherited from class com.waveset.adapter.ResourceAdapter
ResourceAdapter.ActionResult, ResourceAdapter.Features, ResourceAdapter.ObjectType
 
Field Summary
static java.lang.String code_id
           
 
Fields inherited from class com.waveset.adapter.LDAPActiveSyncAdapterBase
RA_ACTIVE_SYNC_OBJECT_CLASSES, RA_ATTRIBUTE_FILTER, RA_BLOCKSIZE, RA_CHANGE_NUMBER_ATTRIBUTE_NAME, RA_PROCESS_NAME
 
Fields inherited from class com.waveset.adapter.LDAPResourceAdapter
RA_ENABLE_PASSWORD_SYNC, RA_FILTER_CHANGES_BY, RA_LDAP_ACTIVATION, RA_LDAP_ACTIVATION_PARM, RA_OR_SEARCH_PARAMS_FILTER, RA_PASSWORD_ENCRYPTION_IV, RA_PASSWORD_ENCRYPTION_KEY, RA_PASSWORD_HASH_ALG
 
Fields inherited from class com.waveset.adapter.LDAPResourceAdapterBase
_accountActivator, _ctx, _encodePwd, ALL_NON_OPERATIONAL_ATTRIBUTES, LDAP_GROUPS_ATTR_NAME, LDAP_SEARCH_ATTRIBUTE_NAMES, LDAP_SEARCH_END_DATE, LDAP_SEARCH_FILTER_STRING, LDAP_SEARCH_OBJECT_CLASSES, LDAP_SEARCH_START_DATE, MICROSOFT, NETSCAPE, OPENLDAP, POSIX_GROUPS_ATTR_NAME, RA_ACTIVE_SYNC_LDAP_FILTER, RA_ENABLE_CONNECTION_POOLING, RA_GROUP_OBJCLASS, RA_GRP_MBR_ATTR, RA_HOST, RA_INCL_OBJCLASSES_IN_SEARCH_FILTER, RA_LDAP_SEARCH_FILTER, RA_MOD_NAMING_ATTR, RA_PASSWORD, RA_PORT, RA_SSL, RA_USE_BLOCKS, RA_USERDN, RA_VLV_SORT_ATTRIBUTE, RA_WSNAME, SUN, UNDISCOVERED, UNKNOWN
 
Fields inherited from class com.waveset.adapter.ResourceAdapterBase
_cache, _context, _excludedAccountsRule, _excludedAccountsRuleInited, _listAllObjectsAttrParse, _listAllObjectsAttrParseName, _listUserAttrParse, _listUserAttrParseName, _listUserGroupsAttrParse, _listUserGroupsAttrParseName, _resource, _thread, _trace, displayInfoCode, RA_BLOCKCOUNT, RA_LOGIN_ACTION, RA_LOGOFF_ACTION, RA_MULTI_VALUED_ATTRS, RA_TEST_MODE
 
Fields inherited from interface com.waveset.adapter.ActiveSync
ACTIVE_SYNC_EVENT_RES_ATTRS_XML, ACTIVE_SYNC_STD_RES_ATTRS_XML, ATTR_IS_DELETED, DATE_FORMAT, DATE_TIME_FORMAT, RA_APPLY_META_VIEW, RA_ASSIGN_SOURCE_ON_CREATE, RA_CONFIRMATION_RULE, RA_CORRELATION_RULE, RA_CREATE_UNMATCHED, RA_DELETE_RULE, RA_FORM, RA_ID, RA_IDM_NAME_RULE, RA_LEGACY_EVENT_GEN, RA_LOG_LEVEL, RA_LOG_PATH, RA_LOG_SIZE, RA_MAX_AGE_LENGTH, RA_MAX_AGE_UNIT, RA_MAX_ARCHIVES, RA_NAME, RA_PARAMETERIZED_INPUT_FORM, RA_POPULATE_GLOBAL, RA_POSTPOLL_WORKFLOW, RA_PREPOLL_WORKFLOW, RA_PROCESS_RULE, RA_PROXY_ADMINISTRATOR, RA_RESET_TO_TODAY, RA_RESOLVE_PROCESS_RULE, RA_SCHEDULE_INTERVAL, RA_SCHEDULE_INTERVAL_COUNT, RA_SCHEDULE_START_DATE, RA_SCHEDULE_START_TIME, RA_SYNC_CONFIG_MODE, RA_SYNC_POST_PROCESS_FORM, RA_UPDATE_IF_DELETE, RA_USE_INPUT_FORM, TIME_FORMAT, TRACE_LEVEL_DEBUG, TRACE_LEVEL_ERROR, TRACE_LEVEL_INFO, TRACE_LEVEL_NONE, TRACE_LEVEL_WARNING
 
Fields inherited from interface com.waveset.adapter.ResourceAdapter
CHANGE_PASSWORD_LOCATION, DISABLE, ENABLE, EXPIRE_PASSWORD, GUID, IGNORE_ATTR, NEW_ACCOUNT_ID, OP_DAYS_INACTIVE, OP_DISABLED, OP_DORMANT, OP_EXPIRED, OP_EXPIREDPWD, OP_INACTIVE, OP_LOCKED, OP_NO_PASSWORD_SET, OP_NOOWNERSHIP, OP_NOPASSWORDREQ, OP_NUMINACTIVEDAYS, OP_NUMPWDAYS, OP_PWNUMDAYS, RA_BASE_CTX, RA_DISPLAY_NAME_ATTR, RA_NEW_OBJECT_ID, RA_NEW_OBJECT_NAME, RA_OBJECT_ATTRIBUTES, RA_OBJECT_CLASS, RA_OBJECT_ID, RA_OBJECT_TYPE, RA_OP_TYPE, RA_RENAME_OP, RA_REQUESTOR, RA_SAVEAS_OP, RA_SEARCH_ATTRIBUTE_NAMES, RA_SEARCH_ATTRS_TO_GET, RA_SEARCH_CONTEXT, RA_SEARCH_FILTER, RA_SEARCH_RUN_AS_PASSWORD, RA_SEARCH_RUN_AS_USER, RA_SEARCH_SCOPE, RA_SEARCH_SCOPE_OBJECT, RA_SEARCH_SCOPE_ONE_LEVEL, RA_SEARCH_SCOPE_SUBTREE, RA_SEARCH_TIME_LIMIT, RESET_PASSWORD, SYSTEM_ATTRIBUTES, UNLOCK, WS_USER_PASSWORD
 
Constructor Summary
LDAPListenerActiveSyncAdapter()
           
LDAPListenerActiveSyncAdapter(Resource res, ObjectCache cache)
           
 
Method Summary
 Resource createPrototypeResource()
           
 void init()
          initialize yourself.
 void localInit()
           
 void namingExceptionThrown(javax.naming.event.NamingExceptionEvent evt)
          Called when a naming exception is thrown while attempting to fire a NamingEvent.
 void objectAdded(javax.naming.event.NamingEvent evt)
          Called when an object has been added.
 void objectChanged(javax.naming.event.NamingEvent evt)
          Called when an object has been changed.
 void objectRemoved(javax.naming.event.NamingEvent evt)
          Called when an object has been removed.
 void objectRenamed(javax.naming.event.NamingEvent evt)
          Called when an object has been renamed.
 void setResource(Resource r)
           
static Resource staticCreatePrototypeResource()
          Override the default to set our class and type and add the source- specific attributes.
 
Methods inherited from class com.waveset.adapter.LDAPActiveSyncAdapterBase
addResourceAttributes, buildEvent, callCompleted, fetchUser, getAttributeValue, getLDIFAttributeValue, getRootDSE, logUpdate, poll, processUpdates, setAttributeValue, shutdown
 
Methods inherited from class com.waveset.adapter.LDAPResourceAdapter
addAttributes, getAccountActivator
 
Methods inherited from class com.waveset.adapter.LDAPResourceAdapterBase
addUserToGroup, addUserToGroup, addUserToGroups, addUserToGroups, authenticate, buildBaseUrl, buildBaseUrl, buildEvent, checkCreateAccount, checkDeleteAccount, checkUpdateAccount, closeConnection, constructAccountFilter, constructAccountFilter, constructObjectClassFilter, createAccounts, createObject, deleteAccounts, deleteObject, doCreateOrUpdateObjectRequest, doCreateOrUpdateObjectRequest, encodePwd, ensureObjectClassInSchemaMap, fetchUser, getAccountAttributes, getAccountIterator, getAccountIterator, getBaseContextAttrName, getBaseContexts, getContextEnv, getFeatures, getGroups, getGroups, getLdapAccountAttributeNames, getLdapAccountAttributeNamesForQuery, getLDAPAttributes, getLDAPAttributes, getLDAPAttributes, getObject, getrn, getServerVendor, getUser, getUser, getUser, getUserCheckForDisabled, isAccountObjectType, isPoolingEnabled, listAllObjects, listObjects, logUpdate, makeConnection, makeConnection, makeUnpooledConnection, mapLDAPAttributes, mapLDAPAttributes, mapLDAPAttributes, modifyObject, namesEqual, parseAttrValue, parseOutRDN, realCreate, realDelete, realDisable, realEnable, realUpdate, removeAttributeDelta, removeNameFromAttribute, removeNameFromAttribute, removeUserFromAllGroups, removeUserFromAllGroups, removeUserFromGroup, removeUserFromGroup, removeUserFromGroups, removeUserFromGroups, renameUserAcrossGroups, renameUserAcrossGroups, renameUserAcrossPosixGroups, setLdapObjectAttribute, setLdapObjectAttributeMultivalued, setLdapObjectAttributeMultivalued, startConnection, stopConnection, supportsAccountDisable, supportsExcludedAccounts, testConfiguration, updateAccounts, updateObject, userActivation
 
Methods inherited from class com.waveset.adapter.ResourceAdapterBase
checkForNoPasswordInSchema, checkSyntax, createAccount, createIdentity, deleteAccount, deleteAccount, disableAccount, disableAccounts, dnsEqual, dnsEqual, enableAccount, enableAccounts, executeResourceAttributeJavascriptAction, fillInResourceInfo, fillInResourceInfo, getAccountIterator, getAction, getActionNotFoundErrorMessage, getActionNotFoundMessage, getActionRunAsPassword, getActionRunAsUser, getActionTimeout, getActionType, getAdapter, getAdapter, getAdapter, getAdapterProxy, getAdapterProxy, getAllAccounts, getAttrNameFromMapName, getAttrNameFromMapName, getAttrParse, getAttrTypeFromMapName, getAttrTypeFromMapName, getAUserName, getBaseContextObject, getBlockSize, getContext, getExcludedAccountsRule, getIdentity, getListAllObjectsAttrParse, getListUserAttrParse, getListUserGroupsAttrParse, getOptionalBooleanResAttrVal, getOptionalBooleanResAttrVal, getOptionalEncryptedResAttrVal, getOptionalResAttrVal, getOptionalStringResAttrVal, getRequiredResAttr, getRequiredResAttr, getRequiredResAttrVal, getRequiredResAttrVal, getRequiredResAttrVals, getRequiredUserAttributeNames, getResAttrValActionOnUser, getResAttrVals, getResource, getResourceAccounts, getResourceInfo, getResourceObjectAttrValNameAttr, getResourceObjectClassAttr, getResourceObjectTypePrefix, getSchemaMap, getWSAttrByMapName, getWSAttrByMapName, getWSAttrFromMap, handleActionResult, handleJavascriptActionResult, isAccountAttributeSecret, isExcludedAccount, isExcludedAccount, isFeatureEnabled, isSupported, isTestMode, listAllObjects, listObjects, listObjectsOfType, lookupAction, lookupAction, lookupActions, objectClassesMatchType, println, restoreResourceObjectClassAttr, run, run, runResourceAttributeJavascriptAction, scan, setCache, setContext, setDisabled, setFromResource, setResourceObjectClassAttr, setResourceOptionAttrs, startConnectionWrapper, supportsAccountActions, supportsActions, supportsCaseInsensitiveAccountIds, supportsContainerObjectTypes, supportsResourceAccount, supportsScanning, updateAccount, updateResourceAccount, updateResourceIdentity, vmStoreBoot, vmStoreGet, vmStoreInit, vmStoreLatch, vmStorePut
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

code_id

public static final java.lang.String code_id
See Also:
Constant Field Values
Constructor Detail

LDAPListenerActiveSyncAdapter

public LDAPListenerActiveSyncAdapter(Resource res,
                                     ObjectCache cache)

LDAPListenerActiveSyncAdapter

public LDAPListenerActiveSyncAdapter()
Method Detail

setResource

public void setResource(Resource r)
Specified by:
setResource in interface ResourceAdapter
Overrides:
setResource in class LDAPActiveSyncAdapterBase

staticCreatePrototypeResource

public static Resource staticCreatePrototypeResource()
                                              throws WavesetException
Override the default to set our class and type and add the source- specific attributes.

Throws:
WavesetException

createPrototypeResource

public Resource createPrototypeResource()
                                 throws WavesetException
Specified by:
createPrototypeResource in interface ResourceAdapter
Overrides:
createPrototypeResource in class LDAPResourceAdapter
Throws:
WavesetException

objectAdded

public void objectAdded(javax.naming.event.NamingEvent evt)
Called when an object has been added.

The binding of the newly added object can be obtained using evt.getNewBinding().

Specified by:
objectAdded in interface javax.naming.event.NamespaceChangeListener
Parameters:
evt - The nonnull event.
See Also:
NamingEvent.OBJECT_ADDED

objectRemoved

public void objectRemoved(javax.naming.event.NamingEvent evt)
Called when an object has been removed.

The binding of the newly removed object can be obtained using evt.getOldBinding().

Specified by:
objectRemoved in interface javax.naming.event.NamespaceChangeListener
Parameters:
evt - The nonnull event.
See Also:
NamingEvent.OBJECT_REMOVED

objectRenamed

public void objectRenamed(javax.naming.event.NamingEvent evt)
Called when an object has been renamed.

The binding of the renamed object can be obtained using evt.getNewBinding(). Its old binding (before the rename) can be obtained using evt.getOldBinding(). One of these may be null if the old/new binding was outside the scope in which the listener has registered interest.

Specified by:
objectRenamed in interface javax.naming.event.NamespaceChangeListener
Parameters:
evt - The nonnull event.
See Also:
NamingEvent.OBJECT_RENAMED

namingExceptionThrown

public void namingExceptionThrown(javax.naming.event.NamingExceptionEvent evt)
Called when a naming exception is thrown while attempting to fire a NamingEvent.

Specified by:
namingExceptionThrown in interface javax.naming.event.NamingListener
Parameters:
evt - The nonnull event.

objectChanged

public void objectChanged(javax.naming.event.NamingEvent evt)
Called when an object has been changed.

The binding of the changed object can be obtained using evt.getNewBinding(). Its old binding (before the change) can be obtained using evt.getOldBinding().

Specified by:
objectChanged in interface javax.naming.event.ObjectChangeListener
Parameters:
evt - The nonnull naming event.
See Also:
NamingEvent.OBJECT_CHANGED

init

public void init()
          throws java.lang.Exception
Description copied from class: LDAPActiveSyncAdapterBase
initialize yourself. throw exception if initialization failed

Specified by:
init in interface ActiveSync
Overrides:
init in class LDAPActiveSyncAdapterBase
Throws:
java.lang.Exception

localInit

public void localInit()