Project

General

Profile

1
package eu.dnetlib.oai.actions;
2

    
3
import javax.annotation.Resource;
4

    
5
import eu.dnetlib.data.oai.store.mongo.MongoPublisherStore;
6
import eu.dnetlib.data.oai.store.mongo.MongoPublisherStoreDAO;
7
import eu.dnetlib.enabling.tools.blackboard.BlackboardJob;
8
import eu.dnetlib.enabling.tools.blackboard.BlackboardServerHandler;
9
import org.apache.commons.lang.StringUtils;
10
import org.apache.commons.logging.Log;
11
import org.apache.commons.logging.LogFactory;
12

    
13
public class EnsureIndexesAction extends AbstractOAIStoreAction {
14

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

    
17
	@Resource
18
	private MongoPublisherStoreDAO mongoPublisherStoreDAO;
19

    
20
	@Override
21
	public void execute(final BlackboardServerHandler handler, final BlackboardJob job) throws Exception {
22
		try {
23
			String storeId = job.getParameters().get("collection");
24
			String dbName = job.getParameters().get("oai_dbName");
25
			if (StringUtils.isBlank(storeId)) {
26
				log.info("Ensuring index on all OAI store");
27
				this.mongoPublisherStoreDAO.ensureIndex(dbName);
28
			} else {
29
				log.info("Ensuring index on " + storeId + " only");
30
				MongoPublisherStore store = this.mongoPublisherStoreDAO.getStore(storeId, dbName);
31
				store.ensureIndices();
32
			}
33
			handler.done(job);
34
		} catch (Exception e) {
35
			handler.failed(job, e);
36
		}
37
	}
38

    
39
	public MongoPublisherStoreDAO getMongoPublisherStoreDAO() {
40
		return mongoPublisherStoreDAO;
41
	}
42

    
43
	public void setMongoPublisherStoreDAO(final MongoPublisherStoreDAO mongoPublisherStoreDAO) {
44
		this.mongoPublisherStoreDAO = mongoPublisherStoreDAO;
45
	}
46

    
47
}
(6-6/9)