Project

General

Profile

1 42181 sandro.lab
package eu.dnetlib.oai.actions;
2
3
import javax.annotation.Resource;
4
5 42184 michele.ar
import org.apache.commons.lang3.StringUtils;
6 42181 sandro.lab
import org.apache.commons.logging.Log;
7
import org.apache.commons.logging.LogFactory;
8
9 42184 michele.ar
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 42181 sandro.lab
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 42184 michele.ar
			final String storeId = job.getParameters().get("collection");
25
			final String dbName = job.getParameters().get("oai_dbName");
26 42181 sandro.lab
			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 42184 michele.ar
				final MongoPublisherStore store = this.mongoPublisherStoreDAO.getStore(storeId, dbName);
32 42181 sandro.lab
				store.ensureIndices();
33
			}
34
			handler.done(job);
35 42184 michele.ar
		} catch (final Exception e) {
36 42181 sandro.lab
			handler.failed(job, e);
37
		}
38
	}
39
40
	public MongoPublisherStoreDAO getMongoPublisherStoreDAO() {
41 42184 michele.ar
		return this.mongoPublisherStoreDAO;
42 42181 sandro.lab
	}
43
44
	public void setMongoPublisherStoreDAO(final MongoPublisherStoreDAO mongoPublisherStoreDAO) {
45
		this.mongoPublisherStoreDAO = mongoPublisherStoreDAO;
46
	}
47
48
}