public class Validator
extends java.lang.Object
Todas as subclasses de AbstractValidation implementadas no pacote
validations do CSBase e no pacote validations_sys
do projeto serão automaticamente executadas.
Os parâmetros da linha de comando são processados e definem a configuração de alguns parâmetros da execução que podem ser consultados pelas validações. O único parâmetro obrigatório é o path para o arquivo que contém as propriedades globais definidas para a instalação em questão do sistema. Deste arquivo são extraídas propriedades obrigatórias para o processo de validação:
ProjectService.baseProjectDir path para o diretório
project do CSBase. Pode ser absoluto ou relativo ao diretório
onde se encontra o arquivo de propriedades.
Validator.tempDir path para o diretório temporário onde
serão criados os backups e onde será armazenado o log da validação (
validacoes.log).
Validator.logPath path para o log da validação.
As validações recebem o validador como parâmetro e podem usá-lo p.ex. para consultar as propriedades lidas do arquivo de propriedades.
Um logger específico é criado por default, para registro do processo tanto no
console quanto no arquivo validacoes.log. O nível de logging
para o arquivo é definido como Level.FINE enquanto que o nível
default para o console é Level.INFO.
As validações são instanciadas por reflexividade e ordenadas de acordo com
seus nomes. Normalmente a ordem entre as validações não deve ser um fator
relevante mas, caso seja, pode-se adotar uma política semelhante à usada para
os scripts de inicialização UNIX (p.ex. Val05XXX,
Val10YYY etc.).
O validador pode ser executado em modo validação (parâmetro
-V) ou em modo patch (default). No modo validação os
backups não são criados, e nenhuma alteração é feita. No modo patch, caso a
aplicação de um dos patches falhe, este e todos os demais aplicadas antes
dele são desfeitos, na ordem inversa em que foram executados.
Os diretórios de backup são removidos apenas em duas situações:
Instalações bem sucedidas podem ser repetidas sem efeito colateral, i.e. patches aplicados com sucesso não serão aplicados novamente em instalações subsequentes.
processArgs(String[]),
isValidatingOnly(),
isVerbose(),
getSystemProperty(String),
getLogger(),
rollback(AbstractValidation),
run(),
ValidationsLogger,
AbstractValidation,
ValidatorUtils| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
SAMPLE_PROPERTIES_FILE
Nome do arquivo de exemplo com valores default para as configurações.
|
static java.lang.String |
VALIDATIONS_TEMP_DIR
Chave para a propriedade que contém o path para o diretório temporário da
instalação.
|
| Modifier and Type | Method and Description |
|---|---|
protected java.io.File |
getAlgorithmDir()
Retorna uma referência para o repositório de algoritmos do CSBase.
|
ValidationsLogger |
getLogger()
Obtém o logger.
|
java.lang.String |
getMandatorySystemProperty(java.lang.String propName)
Retorna o valor associado a uma propriedade do sistema.
|
protected java.io.File |
getProjectDir()
Retorna uma referência para o repositório de projetos do CSBase.
|
java.lang.String |
getSystemProperty(java.lang.String propName)
Retorna o valor associado a uma propriedade do sistema, ou
null caso esta não exista. |
java.lang.String |
getTempDirPath()
Obtém o path para o diretório temporário da instalação.
|
boolean |
isValidatingOnly()
Verifica se estamos apenas validando (i.e.
|
boolean |
isVerbose()
Indica se estamos em modo verbose.
|
static void |
main(java.lang.String[] args)
Método de entrada.
|
public static final java.lang.String VALIDATIONS_TEMP_DIR
public static final java.lang.String SAMPLE_PROPERTIES_FILE
protected final java.io.File getProjectDir()
protected final java.io.File getAlgorithmDir()
public static void main(java.lang.String[] args)
Se todas as validações forem aplicadas com sucesso, encerra a JVM com código 0, senão encerra com código 1.
args - - parâmetros da linha de comandopublic java.lang.String getTempDirPath()
public ValidationsLogger getLogger()
public java.lang.String getSystemProperty(java.lang.String propName)
null caso esta não exista.propName - nome da propriedadenull caso
esta não existagetMandatorySystemProperty(String)public java.lang.String getMandatorySystemProperty(java.lang.String propName)
null.propName - nome da propriedadenull caso
esta não existagetSystemProperty(String)public boolean isValidatingOnly()
true se estamos apenas validandopublic boolean isVerbose()
true se estamos em modo verboseCopyright © 2015. All Rights Reserved.