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 org.apache.commons.lang3.StringUtils;
8
import org.apache.commons.logging.Log;
9
import org.apache.commons.logging.LogFactory;
10
import org.springframework.beans.factory.annotation.Autowired;
11

    
12
public class EnsureIndexesAction extends AbstractOAIStoreAction {
13

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

    
16
	@Autowired
17
	private MongoPublisherStoreDAO mongoPublisherStoreDAO;
18

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

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

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

    
46
}
(6-6/9)