Class AbstractComponentConfiguration

java.lang.Object
br.ufsc.labsec.component.AbstractComponentConfiguration
Direct Known Subclasses:
ComponentConfiguration, ConformanceVerifier, ReferenceSigner

public class AbstractComponentConfiguration extends Object
Esta classe engloba os métodos de configuração de componentes
  • Field Details

  • Constructor Details

    • AbstractComponentConfiguration

      protected AbstractComponentConfiguration()
  • Method Details

    • setup

      public void setup()
      Faz download, caso necessário, das âncoras e/ou listas de confiança. Quando realizado verificação/assinatura como lib, é necessário chamar este método antes de fazer a operação final (sign/verify)
    • setIsReady

      public void setIsReady(boolean isReady)
    • getComponents

      public List<String> getComponents()
      Obtém a lista de componentes presentes no arquivo de configuração
      Returns:
      Uma List com os nomes do componente.
    • getDependencies

      public List<String> getDependencies(String componentName)
      Obtém a lista de dependências do componente.
      Parameters:
      componentName - Nome do componente do qual se quer a lista de dependências
      Returns:
      Uma List com os nomes das dependências.
    • getProviders

      public Set<String> getProviders(String componentName, String role)
      Obtém o conjunto de serviços providos para o componente.
      Parameters:
      componentName - u Nome do componente que depende do serviço
      role - Nome do serviço
      Returns:
      Um Set com os componentes que provém o serviço para esse componente.
    • getComponentStrParam

      public String getComponentStrParam(String componentName, String paramName)
      Obtém o valor para um parâmetro de um dado componente.
      Parameters:
      componentName - Nome do componente do qual se quer os parâmetros
      paramName - Nome do parâmetro
      Returns:
      O valor do parâmetro em forma de String
    • getComponentParam

      public Object getComponentParam(String componentName, String paramName)
      Obtém o valor para um parâmetro de um dado componente.
      Parameters:
      componentName - Nome do componente do qual se quer os parâmetros
      paramName - Nome do parâmetro
      Returns:
      O valor do parâmetro em forma de String
    • getComponentParam

      public Object getComponentParam(Class<? extends Component> component, String paramName)
    • getComponentParams

      public List<Object> getComponentParams(String componentName, String paramName)
      Obtém o valor para um parâmetro de um dado componente.
      Parameters:
      componentName - Nome do componente do qual se quer os parâmetros
      paramName - Nome do parâmetro
      Returns:
      O valor do parâmetro em forma de String
    • setComponentParam

      public void setComponentParam(String componentName, String paramName, Object paramValue)
      Redefine um parâmetro do componente ou o cria.
    • replaceComponent

      public void replaceComponent(String oldComponent, String newComponent)
    • getInstance

      public static AbstractComponentConfiguration getInstance()
    • component

      public AbstractComponentConfiguration component(Class<? extends Component> componentClass)
      Define um component que receberá uma conexão
      Parameters:
      componentClass - A classe do componente
      Returns:
      A própria configuração de componentes atualizada
    • connect

      public AbstractComponentConfiguration connect(Class<? extends Component> componentClass)
      Define qual o componente que será conectado para prover o serviço necessário
      Parameters:
      componentClass - Classe do componente provedor do serviço
      Returns:
      A própria configuração de componentes atualizada
    • on

      O papel em qual deve ser executada a conexão
      Parameters:
      role - A classe do papel da conexão
      Returns:
      A própria configuração de componentes atualizada
    • param

      public AbstractComponentConfiguration param(String name, Object value)
      This method is responsible for handling the contents that might be stored inside the "componentParams" attribute. 1. Map<String, Map<String, List<String>>> We get map inside the map. 2. Check if it is null; if it is, we initialize and add something inside it. 3. Finally, we put a key and content to be linked to that same key; that content will be a list with only one element, a singleton list.
      Returns:
      AbstractComponentConfiguration
    • paramAppend

      public AbstractComponentConfiguration paramAppend(String name, String value)
      Pretty much the same thing as above; at the end of the method, though, we do not create a singleton list. 1. Map<String, Map<String, List<String>>> We get map inside the map. 2. Check if it is null; if it is, we add something inside it. 3. We get the List from "params". 4. We check if it is null; if it is, we initialize it. 5. We add the "value" inside the "values" list. 6. Finally, we put the the "values" list linked to the "name" key inside "params". NOTE: See, this method, as it is called, appends objects to a list. If it starts as an empty/null list, we initialize it first and we get to append content to that same list every time this method is called.
      Returns:
      AbstractComponentConfiguration
    • getPathAppend

      protected String getPathAppend(String path, String append)
    • setupProviders

      public static void setupProviders()
      Adiciona o provedor do BouncyCastle e coloca o provedor SunEC em última posição. Isso é realizado em função do suporte a brainpool ter sido removido no SunEC em jdk > 15.
    • addSchedulers

      protected void addSchedulers(SchedulerManager... schedulers)
    • shutdownSchedulers

      public void shutdownSchedulers()
    • getSchedulers

      public List<SchedulerManager> getSchedulers()
    • initializeConfiguration

      protected static void initializeConfiguration(AbstractComponentConfiguration configuration, boolean immediateAnchorUpdate, boolean downloadLpa)
    • waitUntilReady

      public void waitUntilReady()