Connector Programmer
What's New?
About the Push API
What is the difference between a managed and unmanaged connector?
What are the goals of a connector?
Push API concepts
Documents
URI
Stamps
Meta
Parts
Directives
Consolidation Server directives
Checkpoints
Synchronization
Supported Text Encodings
Push API HTTP Level
Push API at the HTTP level
HTTP command parameters
HTTP methods
HTTP encoding
HTTP command response
HTTP time out
Push API Client Implementation Recommendations
Conventions to follow
Methods
Error messages and exceptions
Operational status
Push API Client Methods
void ping()
void startPushSession()
void stopPushSession()
void addDocument(Document document) and void addDocumentList(Document[ ] documentList)
void updateDocument(Document document, string[] fields) and void updateDocumentList(Document[ ] documentList, string[][] fieldsList)
void deleteDocument(String uri) and void deleteDocumentList(String[] uris)
void deleteDocumentsRootPath(String rootPath [, Boolean recursive=true] )
DocumentStatus getDocumentStatus(String uri) and DocumentStatus[] getDocumentStatusList(String[] uriList)
ulong setCheckpoint(String checkpoint [, String name] [, sync=false])
String getCheckpoint([String name])
String getCheckpoint([String name, Boolean showSynchronizedOnly])
void clearAllCheckpoints()
CheckpointsInfoIterator enumerateCheckpointsInfo()
CheckpointsInfoIterator enumerateCheckpointsInfo (boolean showSynchronizedOnly)
CheckpointsInfoIterator:: next()
SyncedEntriesIterator::
SyncedEntriesIterator enumerateSyncedEntries(String rootPath, EnumerationMode enumerationMode)
ulong countSyncedEntries(String rootPath, EnumerationMode enumerationMode)
void sync()
void triggerIndexingJob()
boolean areDocumentsSearchable(long serial)
Metadata Examples
Using the Push API Client
Installing the Push API Client
Java project requirements
.NET project requirements
Instantiating the Push API Client
Operations and states
Operations
Document statuses
Session handling
Indexing your first PAPI document
Run the sample program
How to force the indexing of pending operations
Check the document status
Indexing a Document Collection
Listing Synced Documents
Checkpoints
Sync code snippet
List documents
Updating Documents
Monitoring the Index
Push API Connector Framework
Connector Framework Prerequisites
Global Requirements
Dependencies
Using the Eclipse plugin
Implementing the Connector
Manage the configuration
Encrypt the password
Implement the connector
Implement a continuous scan
Implement concurrent scan modes
Validate the connector configuration
Add logging capabilities
Update the connector status
Packaging the connector as a plugin
Plugin structure
Create a basic plugin
About the CVPlugin public class
Top level component class(es)
Top level configuration class(es)
Setter/Getter methods
Implementing Format Plugins
Technical Overview
First method
Second method
Extending the Files Connector through Plugins
Technical Overview
First Method
Second Method
Developing a Security Source
About Security Source Development
Implementing a Security Source Plugin
Implement the Security source part
Implement the Associated config part
Implement the security source methods
Implement the AuthenticationResult class
Implement the SecurityToken class
Deploying the Connector
Deploying the Connector Plugin
Install a plugin in the Administration Console
Install a plugin on the command line
List installed plugins
Uninstall a plugin
Maintaining a Connector Configuration across Versions
Creating and Configuring the Connector
Advanced Operations and Best Practices
What to map from the Data Source?
How to Keep the Index Synchronized with the Datasource
Strategy 1: The full scan approach
Strategy 2: The differential approach
Implementing Synchronization
Stamp-based synchronization
Checkpoint-based synchronization
Synchronization best-practices
Push API filters
About Push API filters
Built-in classes
Code snippet (Java)
Deploying Connectors on a Remote Server
Instantiate a connector
Launch your connector using a command line
Calculating a diff between Two Data Sources
Customizing Connectors to use the Interconnector Service
Required dependencies
Master connector sample code
Slave connector sample code
Interconnector aggregation processor
Best Practices
Crash resistance
Log management
Test plan & monitoring
Package the connector
Aggregate Documents
Other best practices
Connector Programmer
Best Practices
FILES_CONNECTOR_EXTENDED_ID
MAINTAINING_CONNECTOR_CONFIG_ID
AC_PAPI_FILTERS_ID
AC_RSCAN_SERVER_ID
This site works best with JavaScript enabled