org.apache.aurora.scheduler.config.CliOptions.java Source code

Java tutorial

Introduction

Here is the source code for org.apache.aurora.scheduler.config.CliOptions.java

Source

/**
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.apache.aurora.scheduler.config;

import java.util.List;

import com.google.common.base.Predicates;
import com.google.common.collect.FluentIterable;
import com.google.common.collect.ImmutableList;

import org.apache.aurora.scheduler.SchedulerModule;
import org.apache.aurora.scheduler.TierModule;
import org.apache.aurora.scheduler.app.AppModule;
import org.apache.aurora.scheduler.app.SchedulerMain;
import org.apache.aurora.scheduler.async.AsyncModule;
import org.apache.aurora.scheduler.configuration.executor.ExecutorModule;
import org.apache.aurora.scheduler.cron.quartz.CronModule;
import org.apache.aurora.scheduler.discovery.FlaggedZooKeeperConfig;
import org.apache.aurora.scheduler.events.WebhookModule;
import org.apache.aurora.scheduler.http.JettyServerModule;
import org.apache.aurora.scheduler.http.api.ApiModule;
import org.apache.aurora.scheduler.http.api.security.HttpSecurityModule;
import org.apache.aurora.scheduler.http.api.security.IniShiroRealmModule;
import org.apache.aurora.scheduler.http.api.security.Kerberos5ShiroRealmModule;
import org.apache.aurora.scheduler.log.mesos.MesosLogStreamModule;
import org.apache.aurora.scheduler.maintenance.MaintenanceModule;
import org.apache.aurora.scheduler.mesos.CommandLineDriverSettingsModule;
import org.apache.aurora.scheduler.offers.OfferManagerModule;
import org.apache.aurora.scheduler.preemptor.PreemptorModule;
import org.apache.aurora.scheduler.pruning.PruningModule;
import org.apache.aurora.scheduler.reconciliation.ReconciliationModule;
import org.apache.aurora.scheduler.resources.ResourceSettings;
import org.apache.aurora.scheduler.scheduling.SchedulingModule;
import org.apache.aurora.scheduler.sla.SlaModule;
import org.apache.aurora.scheduler.state.StateModule;
import org.apache.aurora.scheduler.stats.AsyncStatsModule;
import org.apache.aurora.scheduler.stats.StatsModule;
import org.apache.aurora.scheduler.storage.backup.BackupModule;
import org.apache.aurora.scheduler.storage.log.LogPersistenceModule;
import org.apache.aurora.scheduler.storage.log.SnapshotModule;
import org.apache.aurora.scheduler.thrift.aop.AopModule;
import org.apache.aurora.scheduler.updater.UpdaterModule;

public class CliOptions {
    public final ReconciliationModule.Options reconciliation = new ReconciliationModule.Options();
    public final OfferManagerModule.Options offer = new OfferManagerModule.Options();
    public final ExecutorModule.Options executor = new ExecutorModule.Options();
    public final AppModule.Options app = new AppModule.Options();
    public final SchedulerMain.Options main = new SchedulerMain.Options();
    public final SchedulingModule.Options scheduling = new SchedulingModule.Options();
    public final AsyncModule.Options async = new AsyncModule.Options();
    public final FlaggedZooKeeperConfig.Options zk = new FlaggedZooKeeperConfig.Options();
    public final UpdaterModule.Options updater = new UpdaterModule.Options();
    public final StateModule.Options state = new StateModule.Options();
    public final LogPersistenceModule.Options logPersistence = new LogPersistenceModule.Options();
    public final SnapshotModule.Options snapshot = new SnapshotModule.Options();
    public final BackupModule.Options backup = new BackupModule.Options();
    public final AopModule.Options aop = new AopModule.Options();
    public final PruningModule.Options pruning = new PruningModule.Options();
    public final CommandLineDriverSettingsModule.Options driver = new CommandLineDriverSettingsModule.Options();
    public final JettyServerModule.Options jetty = new JettyServerModule.Options();
    public final HttpSecurityModule.Options httpSecurity = new HttpSecurityModule.Options();
    public final Kerberos5ShiroRealmModule.Options kerberos = new Kerberos5ShiroRealmModule.Options();
    public final IniShiroRealmModule.Options iniShiroRealm = new IniShiroRealmModule.Options();
    public final ApiModule.Options api = new ApiModule.Options();
    public final PreemptorModule.Options preemptor = new PreemptorModule.Options();
    public final MesosLogStreamModule.Options mesosLog = new MesosLogStreamModule.Options();
    public final SlaModule.Options sla = new SlaModule.Options();
    public final WebhookModule.Options webhook = new WebhookModule.Options();
    public final SchedulerModule.Options scheduler = new SchedulerModule.Options();
    public final TierModule.Options tiers = new TierModule.Options();
    public final AsyncStatsModule.Options asyncStats = new AsyncStatsModule.Options();
    public final StatsModule.Options stats = new StatsModule.Options();
    public final CronModule.Options cron = new CronModule.Options();
    public final ResourceSettings resourceSettings = new ResourceSettings();
    public final MaintenanceModule.Options maintenance = new MaintenanceModule.Options();
    final List<Object> custom;

    public CliOptions() {
        this(ImmutableList.of());
    }

    public CliOptions(List<Object> custom) {
        this.custom = custom;
    }

    /**
     * Gets a custom options object of a particular type.
     *
     * @param customOptionType Custom option type class.
     * @param <T> Custom option type.
     * @return The matching custom option object.
     */
    @SuppressWarnings("unchecked")
    public <T> T getCustom(Class<T> customOptionType) {
        return (T) FluentIterable.from(custom).firstMatch(Predicates.instanceOf(customOptionType)).get();
    }
}