package org.elasticsearch.plugin.gridfs;
import org.elasticsearch.common.collect.Lists;
import org.elasticsearch.common.component.LifecycleComponent;
import org.elasticsearch.common.inject.Module;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.plugins.AbstractPlugin;
import org.elasticsearch.repositories.RepositoriesModule;
import org.elasticsearch.repositories.gridfs.GridFsRepository;
import org.elasticsearch.repositories.gridfs.GridFsRepositoryModule;
import org.elasticsearch.repositories.gridfs.GridFsService;
import java.util.Collection;
public class GridFsRepositoryPlugin extends AbstractPlugin {
private final Settings settings;
public GridFsRepositoryPlugin(Settings settings) {
this.settings = settings;
}
@Override
public String name() {
return "gridfs-repository";
}
@Override
public String description() {
return "GridFS repository plugin";
}
@Override
public Collection<Class<? extends Module>> modules() {
Collection<Class<? extends Module>> modules = Lists.newArrayList();
if (settings.getAsBoolean("gridfs.repository.enabled", true)) {
modules.add(GridFsModule.class);
}
return modules;
}
@Override
public Collection<Class<? extends LifecycleComponent>> services() {
Collection<Class<? extends LifecycleComponent>> services = Lists.newArrayList();
if (settings.getAsBoolean("gridfs.repository.enabled", true)) {
services.add(GridFsService.class);
}
return services;
}
public void onModule(RepositoriesModule repositoriesModule) {
if (settings.getAsBoolean("gridfs.repository.enabled", true)) {
repositoriesModule.registerRepository(GridFsRepository.TYPE, GridFsRepositoryModule.class);
}
}
}