Project

General

Profile

1
package eu.dnetlib.data.oai.store.actions;
2

    
3
import javax.annotation.Resource;
4

    
5
import eu.dnetlib.data.information.oai.utils.OAIParameterNames;
6
import org.apache.commons.lang3.StringUtils;
7
import org.apache.commons.logging.Log;
8
import org.apache.commons.logging.LogFactory;
9

    
10
import eu.dnetlib.data.oai.store.mongo.MongoPublisherStore;
11
import eu.dnetlib.data.oai.store.mongo.MongoPublisherStoreDAO;
12
import eu.dnetlib.enabling.tools.blackboard.BlackboardJob;
13
import eu.dnetlib.enabling.tools.blackboard.BlackboardServerHandler;
14

    
15
public class EnsureIndexesAction extends AbstractOAIStoreAction {
16

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

    
19
	@Resource
20
	private MongoPublisherStoreDAO mongoPublisherStoreDAO;
21

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

    
41
	public MongoPublisherStoreDAO getMongoPublisherStoreDAO() {
42
		return mongoPublisherStoreDAO;
43
	}
44

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

    
49
}
(6-6/9)