Project

General

Profile

1
package eu.dnetlib.oai.actions;
2

    
3
import eu.dnetlib.enabling.tools.blackboard.BlackboardJob;
4
import eu.dnetlib.enabling.tools.blackboard.BlackboardServerHandler;
5
import eu.dnetlib.oai.mongo.MongoPublisherStore;
6
import eu.dnetlib.oai.mongo.MongoPublisherStoreDAO;
7
import eu.dnetlib.oai.utils.OAIParameterNames;
8
import org.apache.commons.lang3.StringUtils;
9
import org.apache.commons.logging.Log;
10
import org.apache.commons.logging.LogFactory;
11
import org.springframework.beans.factory.annotation.Autowired;
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
	@Autowired
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(OAIParameterNames.OAI_COLLECTON);
24
			String dbName = job.getParameters().get(OAIParameterNames.OAI_DB);
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 (final Exception e) {
35
			handler.failed(job, e);
36
		}
37
	}
38

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

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

    
47
}
(6-6/8)