Project

General

Profile

1
package eu.dnetlib.data.mdstore.modular.mongodb.utils;
2

    
3
import eu.dnetlib.data.mdstore.modular.MDStoreDescription;
4
import org.apache.commons.logging.Log;
5
import org.apache.commons.logging.LogFactory;
6
import org.springframework.beans.factory.annotation.Required;
7

    
8
import eu.dnetlib.data.mdstore.MDStoreServiceException;
9
import eu.dnetlib.data.mdstore.modular.connector.MDStoreDao;
10
import eu.dnetlib.data.mdstore.modular.mongodb.MongoMDStore;
11
import eu.dnetlib.enabling.tools.AbstractSchedulable;
12

    
13
public class EnsureIndexJob extends AbstractSchedulable {
14

    
15
	private static final Log log = LogFactory.getLog(EnsureIndexJob.class); // NOPMD by marko on 11/24/08 5:02 PM
16

    
17
	private MDStoreDao dao;
18

    
19
	@Override
20
	protected void doExecute() {
21
		log.info("performing mdstore index check");
22

    
23
		try {
24
			for (MDStoreDescription mdstore : getDao().listMDStores()) {
25
				try {
26
					log.info("ensureindex for mdStoreId:" + mdstore.getId());
27
					((MongoMDStore) getDao().getMDStore(mdstore.getId())).ensureIndices();
28
				} catch (Throwable e) {
29
					log.warn("unable to reindex mdstore: " + mdstore.getId(), e);
30
				}
31
			}
32
		} catch (MDStoreServiceException e) {
33
			log.warn("unable to reindex mdstore ", e);
34
		}
35

    
36
		log.info("mdstore index check completed");
37
	}
38

    
39
	@Required
40
	public void setDao(final MDStoreDao dao) {
41
		this.dao = dao;
42
	}
43

    
44
	public MDStoreDao getDao() {
45
		return dao;
46
	}
47

    
48
}
(1-1/5)