Project

General

Profile

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

    
3
import org.apache.commons.logging.Log;
4
import org.apache.commons.logging.LogFactory;
5
import org.springframework.beans.factory.annotation.Required;
6

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

    
12
public class EnsureIndexJob extends AbstractSchedulable {
13

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

    
16
	private MDStoreDao dao;
17

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

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

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

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

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

    
47
}
(1-1/3)