Sample Code for the Synchronize Action
The following code sample demonstrates a complete synchronize
action. The sample uses a directory on the file system to represent a repository.
package myconnector; import com.autonomy.connector.*; import java.io.File; public class SimpleSynchronize extends ConnectorBase { public static class IngestResultHandler { private final SynchronizeTask task; public IngestResultHandler(SynchronizeTask task) { this.task = task; } public void handler(DocInfo docInfo, Ingester.TaskType type, boolean success) { if (success) { task.getLog().writeln(Log.NORMAL, "Document " + docInfo.getDoc().getReference() + " ingest " + type + " succeeded!"); } else { task.getLog().writeln(Log.ERROR, "Ingestion failed for " + docInfo.getDoc().getReference()); } } } public SimpleSynchronize(Config config, Log log) { super("My Connector"); } public void synchronize(SynchronizeTask task) throws Exception { IngestResultHandler resultHandler = new IngestResultHandler(task); task.getIngester().addResultHandler(resultHandler, "handler"); String directory = task.getTaskConfig().read("Directory", "data"); File rootEntry = new File(directory); if (rootEntry.isDirectory()) { File[] files = rootEntry.listFiles(); for (int ii = 0; ii < files.length; ++ii) { if (task.stop()) return; File fileEntry = new File(files[ii].getAbsolutePath()); if (fileEntry.isFile()) { DocInfo docInfo = new DocInfo( task.getTaskConfig(), fileEntry.getAbsolutePath(), fileEntry.getAbsolutePath(), false); task.getIngester().add(docInfo); } } } } }