| 138 | === Design Overview === |
| 139 | |
| 140 | A quick overview of the design : |
| 141 | * an !AbstractHarvester class. Each harvester will extend this abstract class. No needs to have multiple classes for specific harvesters, only one is needed (ie. !CSWHarvester extends !AbstractHarvester). |
| 142 | * an !HarvestingTaskManager responsible of the harvesting tasks management. |
| 143 | * runnable tasks, executor services and thread pooling mecanisms are based on native/generic Java concepts : Runnable (java.lang.Runnable); Executors, !ScheduledExecutorService and !ThreadPoolExecutor (java.util.concurrent). |
| 144 | * an object model (~Java bean) with the following entities : !HarvestingTask, !HarvestingTaskConfiguration, !HarvestingTaskRunMode, !HarvestingTaskStatus, AbstractMetadata(->Metadata, Template, !SubTemplate), !MetadataAlignerError, !MetadataAlignerResult ... |
| 145 | * a !MetadataAligner responsible of all import, update, delete of any !AbstractMetadata (ie. metadata, template) |
| 146 | |
| 147 | |
| 156 | * At the time being, only those harvesters are fully implemented (both client and server side) CSW, File system, Geonetwork, OAIPMH and Webdav. |
| 157 | * What about new feature compliance : ie. harvesting history, schema management |
| 158 | * Non conventionnal harvesters are not yet implemented and might be out of the scope of the generic model... (ie. threeds, WFS fragments) |
| 159 | * the java object model implies lots of modifications in the sources. For instance, we do not have anymore multiple methods in the !DataManager to handle metadata insert or import... the same for update and delete. We also need to introduce object such as Group, Category and dedicated managers... |
| 160 | |
| 161 | |