|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
public interface IRepositoryConnector
This interface describes an instance of a connection between a repository and ManifoldCF's standard "pull" ingestion agent. Each instance of this interface is used in only one thread at a time. Connection Pooling on these kinds of objects is performed by the factory which instantiates repository connectors from symbolic names and config parameters, and is pooled by these parameters. That is, a pooled connector handle is used only if all the connection parameters for the handle match. Implementers of this interface should provide a default constructor which has this signature: xxx(); Connectors are either configured or not. If configured, they will persist in a pool, and be reused multiple times. Certain methods of a connector may be called before the connector is configured. This includes basically all methods that permit inspection of the connector's capabilities. The complete list is: The purpose of the repository connector is to allow documents to be fetched from the repository. Each repository connector describes a set of documents that are known only to that connector. It therefore establishes a space of document identifiers. Each connector will only ever be asked to deal with identifiers that have in some way originated from the connector. Documents are fetched by ManifoldCF in three stages. First, the addSeedDocuments() method is called in the connector implementation. This method is meant to add a set of document identifiers to the queue. When ManifoldCF is ready to process a document, the document identifier is used to obtain a current document version string, using the getDocumentVersions() method (the second stage). This version string is used to decide whether or not the third stage need be called for the document or not. The third stage is responsible for sending document content to the output, and for extracting any references to additional documents, and consists of the processDocuments() method. All of these methods interact with ManifoldCF by means of an "activity" interface. For example, an IVersionActivity object is passed to the getDocumentVersions() method, and that object contains methods that are necessary for getDocumentVersions() to do its job. A similar architecture is used throughout the connector framework.
| Field Summary | |
|---|---|
static java.lang.String |
_rcsid
|
static int |
JOBMODE_CONTINUOUS
|
static int |
JOBMODE_ONCEONLY
|
static int |
MODEL_ADD
Supply at least the documents that have been added since the specified start time. |
static int |
MODEL_ADD_CHANGE
Supply at least the documents that have been added or changed within the specified time range. |
static int |
MODEL_ADD_CHANGE_DELETE
Supply at least the documents that have been added, changed, or deleted within the specified time range. |
static int |
MODEL_ALL
Supply all seeds every time. |
static int |
MODEL_PARTIAL
This indicates that the seeds are never complete; the previous seeds are lost and cannot be retrieved. |
| Method Summary | |
|---|---|
void |
addSeedDocuments(ISeedingActivity activities,
DocumentSpecification spec,
long startTime,
long endTime,
int jobMode)
Queue "seed" documents. |
java.lang.String[] |
getActivitiesList()
Return the list of activities that this connector supports (i.e. |
java.lang.String[] |
getBinNames(java.lang.String documentIdentifier)
Get the bin name strings for a document identifier. |
int |
getConnectorModel()
Tell the world what model this connector uses for addSeedDocuments(). |
java.lang.String[] |
getDocumentVersions(java.lang.String[] documentIdentifiers,
java.lang.String[] oldVersions,
IVersionActivity activities,
DocumentSpecification spec,
int jobMode,
boolean usesDefaultAuthority)
Get document versions given an array of document identifiers. |
int |
getMaxDocumentRequest()
Get the maximum number of documents to amalgamate together into one batch, for this connector. |
java.lang.String[] |
getRelationshipTypes()
Return the list of relationship types that this connector recognizes. |
void |
outputSpecificationBody(IHTTPOutput out,
DocumentSpecification ds,
java.lang.String tabName)
Output the specification body section. |
void |
outputSpecificationHeader(IHTTPOutput out,
DocumentSpecification ds,
java.util.ArrayList tabsArray)
Output the specification header section. |
void |
processDocuments(java.lang.String[] documentIdentifiers,
java.lang.String[] versions,
IProcessActivity activities,
DocumentSpecification spec,
boolean[] scanOnly,
int jobMode)
Process a set of documents. |
java.lang.String |
processSpecificationPost(IPostParameters variableContext,
DocumentSpecification ds)
Process a specification post. |
void |
releaseDocumentVersions(java.lang.String[] documentIdentifiers,
java.lang.String[] versions)
Free a set of documents. |
boolean |
requestInfo(Configuration output,
java.lang.String command)
Request arbitrary connector information. |
void |
viewSpecification(IHTTPOutput out,
DocumentSpecification ds)
View specification. |
| Methods inherited from interface org.apache.manifoldcf.core.interfaces.IConnector |
|---|
check, clearThreadContext, connect, deinstall, disconnect, getConfiguration, install, outputConfigurationBody, outputConfigurationHeader, poll, processConfigurationPost, setThreadContext, viewConfiguration |
| Field Detail |
|---|
static final java.lang.String _rcsid
static final int MODEL_ALL
static final int MODEL_ADD
static final int MODEL_ADD_CHANGE
static final int MODEL_ADD_CHANGE_DELETE
static final int MODEL_PARTIAL
static final int JOBMODE_ONCEONLY
static final int JOBMODE_CONTINUOUS
| Method Detail |
|---|
int getConnectorModel()
java.lang.String[] getActivitiesList()
java.lang.String[] getRelationshipTypes()
java.lang.String[] getBinNames(java.lang.String documentIdentifier)
documentIdentifier - is the document identifier.
boolean requestInfo(Configuration output,
java.lang.String command)
throws ManifoldCFException
output - is the response object, to be filled in by this method.command - is the command, which is taken directly from the API request.
ManifoldCFException
void addSeedDocuments(ISeedingActivity activities,
DocumentSpecification spec,
long startTime,
long endTime,
int jobMode)
throws ManifoldCFException,
ServiceInterruption
activities - is the interface this method should use to perform whatever framework actions are desired.spec - is a document specification (that comes from the job).startTime - is the beginning of the time range to consider, inclusive.endTime - is the end of the time range to consider, exclusive.jobMode - is an integer describing how the job is being run, whether continuous or once-only.
ManifoldCFException
ServiceInterruption
java.lang.String[] getDocumentVersions(java.lang.String[] documentIdentifiers,
java.lang.String[] oldVersions,
IVersionActivity activities,
DocumentSpecification spec,
int jobMode,
boolean usesDefaultAuthority)
throws ManifoldCFException,
ServiceInterruption
documentIdentifiers - is the array of local document identifiers, as understood by this connector.oldVersions - is the corresponding array of version strings that have been saved for the document identifiers.
A null value indicates that this is a first-time fetch, while an empty string indicates that the previous document
had an empty version string.activities - is the interface this method should use to perform whatever framework actions are desired.spec - is the current document specification for the current job. If there is a dependency on this
specification, then the version string should include the pertinent data, so that reingestion will occur
when the specification changes. This is primarily useful for metadata.jobMode - is an integer describing how the job is being run, whether continuous or once-only.usesDefaultAuthority - will be true only if the authority in use for these documents is the default one.
ManifoldCFException
ServiceInterruption
void processDocuments(java.lang.String[] documentIdentifiers,
java.lang.String[] versions,
IProcessActivity activities,
DocumentSpecification spec,
boolean[] scanOnly,
int jobMode)
throws ManifoldCFException,
ServiceInterruption
documentIdentifiers - is the set of document identifiers to process.versions - is the corresponding document versions to process, as returned by getDocumentVersions() above.
The implementation may choose to ignore this parameter and always process the current version.activities - is the interface this method should use to queue up new document references
and ingest documents.spec - is the document specification.scanOnly - is an array corresponding to the document identifiers. It is set to true to indicate when the processing
should only find other references, and should not actually call the ingestion methods.jobMode - is an integer describing how the job is being run, whether continuous or once-only.
ManifoldCFException
ServiceInterruption
void releaseDocumentVersions(java.lang.String[] documentIdentifiers,
java.lang.String[] versions)
throws ManifoldCFException
documentIdentifiers - is the set of document identifiers.versions - is the corresponding set of version identifiers (individual identifiers may be null).
ManifoldCFExceptionint getMaxDocumentRequest()
void outputSpecificationHeader(IHTTPOutput out,
DocumentSpecification ds,
java.util.ArrayList tabsArray)
throws ManifoldCFException,
java.io.IOException
out - is the output to which any HTML should be sent.ds - is the current document specification for this job.tabsArray - is an array of tab names. Add to this array any tab names that are specific to the connector.
ManifoldCFException
java.io.IOException
void outputSpecificationBody(IHTTPOutput out,
DocumentSpecification ds,
java.lang.String tabName)
throws ManifoldCFException,
java.io.IOException
java.lang.String processSpecificationPost(IPostParameters variableContext,
DocumentSpecification ds)
throws ManifoldCFException
variableContext - contains the post data, including binary file-upload information.ds - is the current document specification for this job.
ManifoldCFException
void viewSpecification(IHTTPOutput out,
DocumentSpecification ds)
throws ManifoldCFException,
java.io.IOException
out - is the output to which any HTML should be sent.ds - is the current document specification for this job.
ManifoldCFException
java.io.IOException
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||