Project

General

Profile

1
package eu.dnetlib.oai.actions;
2

    
3
import javax.annotation.Resource;
4

    
5
import org.apache.commons.lang3.StringUtils;
6
import org.apache.commons.logging.Log;
7
import org.apache.commons.logging.LogFactory;
8

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

    
14
public class EnsureIndexesAction extends AbstractOAIStoreAction {
15

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

    
18
	@Resource
19
	private MongoPublisherStoreDAO mongoPublisherStoreDAO;
20

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

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

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

    
48
}
(6-6/9)