/*
* This file is part of a module with proprietary Enterprise Features.
*
* Licensed to Crate.io Inc. ("Crate.io") under one or more contributor
* license agreements. See the NOTICE file distributed with this work for
* additional information regarding copyright ownership.
*
* Unauthorized copying of this file, via any medium is strictly prohibited.
*
* To use this file, Crate.io must have given you permission to enable and
* use such Enterprise Features and you must have a valid Enterprise or
* Subscription Agreement with Crate.io. If you enable or use the Enterprise
* Features, you represent and warrant that you have a valid Enterprise or
* Subscription Agreement with Crate.io. Your use of the Enterprise Features
* if governed by the terms and conditions of your Enterprise or Subscription
* Agreement with Crate.io.
*/
package io.crate.plugin;
import com.google.common.collect.ImmutableList;
import io.crate.Plugin;
import io.crate.module.CrateMonitoringModule;
import io.crate.settings.SharedSettings;
import org.elasticsearch.common.inject.Module;
import org.elasticsearch.common.settings.Settings;
import java.util.Collection;
import java.util.Collections;
public class CrateMonitoringPlugin implements Plugin {
private final boolean isEnterprise;
public CrateMonitoringPlugin(Settings settings) {
isEnterprise = SharedSettings.ENTERPRISE_LICENSE_SETTING.setting().get(settings);
}
@Override
public String name() {
return "jmx-monitoring";
}
@Override
public String description() {
return "The CrateDB JMX monitoring plugin";
}
@Override
public Collection<Module> createGuiceModules() {
return isEnterprise ? ImmutableList.of(new CrateMonitoringModule()) : Collections.emptyList();
}
}