All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.wavefront.agent.TokenManager Maven / Gradle / Ivy

There is a newer version: 4.36
Show newest version
package com.wavefront.agent;

import com.google.common.collect.Maps;
import com.wavefront.agent.api.APIContainer;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.jetbrains.annotations.TestOnly;

public class TokenManager {
  private static final Map multicastingTenantList = Maps.newHashMap();
  private static List scheduledWorkers = new ArrayList();
  private static List externalWorkers = new ArrayList();

  public static void addTenant(String tenantName, TenantInfo tokenWorker) {
    multicastingTenantList.put(tenantName, tokenWorker);

    if (tokenWorker instanceof TokenWorker.Scheduled) {
      scheduledWorkers.add((TokenWorker.Scheduled) tokenWorker);
    }

    if (tokenWorker instanceof TokenWorker.External) {
      externalWorkers.add((TokenWorker.External) tokenWorker);
    }
  }

  public static void start(APIContainer apiContainer) {
    externalWorkers.forEach(external -> external.setAPIContainer(apiContainer));
    scheduledWorkers.forEach(tenantInfo -> tenantInfo.run());
  }

  public static Map getMulticastingTenantList() {
    return multicastingTenantList;
  }

  @TestOnly
  public static void reset() {
    externalWorkers.clear();
    scheduledWorkers.clear();
    multicastingTenantList.clear();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy