InitializeWrapper
Classe InitializeWrapper
Implementa os processos de negócio no processo de inicialização do VSet Chameleon ou Hot Deploy.
Anotações
Classe
| Anotação | Descrição | Parâmetro |
|---|---|---|
@NotLog | Informa para VSet Chameleon não gravar rastreamento/performance do processo | |
@NotShow | Informa para VSet Chameleon não gravar as mensagem de requisição e resposta no log de auditoria |
Exemplo
@NotLog
public class Initialize extends InitializeWrapper {
// any code
}
Método principal do processo de negócio
| Método | Tipo | Descrição | |
|---|---|---|---|
initiate() | void | Implementa as regras de negócio | Opcional |
Exemplo
public class Initialize extends InitializeWrapper {
@Override
public void initiate() throws Exception {
// any code
}
}
Variável de sessão
| Método | Tipo | Descrição | |
|---|---|---|---|
getSessionProperty(String key) | Object | Recupera o valor de uma variável de sessão tipo objeto | |
getSessionPropertyInt(String key) | int | Recupera o valor de uma variável de sessão tipo inteiro | |
getSessionPropertyLong(String key) | long | Recupera o valor de uma variável de sessão tipo long | |
getSessionPropertyByte(String key) | byte | Recupera o valor de uma variável de sessão tipo byte | |
getSessionPropertyDouble(String key) | double | Recupera o valor de uma variável de sessão tipo double | |
getSessionPropertyBool(String key) | boolean | Recupera o valor de uma variável de sessão tipo booleano | |
getSessionPropertyStr(String key) | String | Recupera o valor de uma variável de sessão tipo string | |
setSessionProperty(String key, Object value) | void | Insere o valor de uma variável de sessão tipo objeto | |
setSessionPropertyInt(String key, int value) | void | Insere o valor de uma variável de sessão tipo inteiro | |
setSessionPropertyLong(String key, long value) | void | Insere o valor de uma variável de sessão tipo long | |
setSessionPropertyByte(String key, byte value) | void | Insere o valor de uma variável de sessão tipo byte | |
setSessionPropertyDouble(String key, double value) | void | Insere o valor de uma variável de sessão tipo double | |
setSessionPropertyBool(String key, boolean value) | void | Insere o valor de uma variável de sessão tipo booleano |
Exemplo
- Inclusão do valor da variável de sessão
setSessionPropertyInt("IdUser", ui.getOutput().getId());
setSessionPropertyInt("IdCompany", idCompany);
setSessionProperty("Usercode", input.getUsercode());
- Recuperação do valor da variável de sessão
int idUser = getSessionPropertyInt("IdUser");
int idCompany = getSessionPropertyInt("IdCompany");
String usercode = getSessionProperty("Usercode");
Contexto Transacional Nível Bloco
| Método | Tipo | Descrição | |
|---|---|---|---|
beginTransactionBlock() | void | Inicia o bloco transacional de um escopo da regra de negócio | Garantir o contexto transacional do bloco - Banco de dados |
commitTransactionBlock() | void | Efetiva o bloco transacional de um escopo da regra de negócio | |
rollbackTransactionBlock() | void | Desfaz o bloco transacional de um escopo da regra de negócio |
Exemplo
try {
PassportPassword pp = new PassportPassword();
pp.setUsercode(input.getUsercode());
pp.setChannel(uio.getChannel());
pp.setTokenApp(getClientID());
pp.setToken(Util.generateKeyRandom(8));
// begin transaction block
beginTransactionBlock();
TokenUserDAO tuDAO = new TokenUserDAO();
tuDAO.getInput().setId(uio.getIdToken());
tuDAO.select();
TokenUser tu = (TokenUser) tuDAO.getOutputOnlyRecord();
tuDAO.getInput().setPasswordErrorAmount(tu.getPasswordErrorAmount() + 1);
tuDAO.getInput().setLastPasswordErrorDate(new Timestamp(System.currentTimeMillis()));
tuDAO.update();
// end transaction block
commitTransactionBlock();
}
catch (Exception e) {
// rollback transaction block
rollbackTransactionBlock();
throw e;
}
Observação: Aqueles trechos que estão fora do contexto transacional do bloco serão controlados pelo contexto transacional nível global.
FAQ (Frequently Asked Questions)
Como funciona o processo da instanciação da classe InitializeWrapper?Ocorre em duas situações: Na inicialização do serviço do VSet Chameleon ou no processo de publicação de versão do módulo (Hot Deploy).
O que acontece caso tenha alguma falha no processo de execução na classe de inicialização (InitializeWrapper)?Quando ocorre alguma falha no processo de execução na classe de inicialização, VSet Chameleon fará a execução do rollback e enviará alerta no monitor e no email para equipe do suporte o motivo da falha. Em cada um minuto, tentará processar novamente até o processo tenha êxito. Geralmente as falhas mais comums são problema de conexão com banco de dados, queda de servidores, problemas de infra (espaço de disco, memória) e dentre outros. Também pode haver falha devido erro de código. Neste caso, desenvolvedor deverá fazer a correção e publicar novamente a versão corrigida.