| #summary frequently asked questions with answers |
| |
| = Developer FAQ = |
| |
| * How should one handle repository being unavailable during init()? |
| |
| It is OK for init() to error if repository is unavailable, as the |
| !GsaCommunicationHandler will retry init() using exponential backoff |
| (starting at some seconds and maxing out at an hour) until it is interrupted, shutdown, or successful. |
| |
| |
| * How do I get a reference to the !DocIdPusher? |
| |
| Use !AdaptorContext.getDocIdPusher() that you get in init. |
| |
| |
| * How do I feed document that has changed? |
| |
| Send a Record for that !DocId with crawl-immediately being true. |
| |
| |
| * How do I feed a document that has been deleted? |
| |
| Tell the GSA to crawl the document, which will result in 404, which will result in a deletion. If you'd like you can set delete to be true in Record, but that's not necessary. |
| |
| |
| * How do I make an ACL? |
| |
| Use Acl.Builder |
| |
| |
| * Can I represent multiple ACLs for same document? |
| |
| Yes. |
| |
| Consider: some/path/Folder and some/path/Folder/File |
| |
| Acls:<br> |
| some/path/Folder (sent via retriever)<br> |
| generated/inherit_file/some/path/Folder (sent via pushNamedResources)<br> |
| generated/inherit_folder/some/path/Folder (sent via pushNamedResources)<br> |
| some/path/Folder/File inherits from generated/inherit_file/some/path/Folder (sent via retriever)<br> |
| |
| To send using pushNamedResources, create the other ACLs and then spawn a new thread that calls pushNamedResources. |
| |
| * I'm getting interruption exception, what am I doing wrong? |
| |
| The adaptor has 30 seconds to start sending content, and 3 minutes to complete sending content. The config values are adaptor.docContentTimeoutSecs and adaptor.docHeaderTimeoutSecs. |
| |
| * My adaptor freezes! |
| |
| Windows users need JRE 1.7u6 or higher (earlier versions freeze) . |
| |
| * My adaptor has a memory leak! |
| |
| All users need at least JRE 1.6u27 or higher (earlier versions have a memory leak). |
| |
| * I'm seeing the same config name appear twice in dashboard? |
| |
| Please double check that you don't have a Unicode invisible space character, that maybe was copied from a webpage or was inserted at the beginning of the file by your text editor, in your config name. |
| |
| * I have an existing Adaptor that provides full data pushes - how do I make it support incremental pushes? |
| |
| Implement `com/google/enterprise/adaptor/PollingIncrementalLister` which has a single method `getModifiedDocIds(DocIdPusher pusher)` . When initializing the Adaptor, register with `AdaptorContext.setPollingIncrementalLister(yourLister)`. |