A proposta deste projeto é estabelecer um BOM do Maven e módulos compartilhados, a fim de promover consistência em projetos arquiteturais.
- Testes:
mvn verify
- Construção:
mvn package
Como testar localmente o BOM e módulos em outro projeto
-
Execute um comando de install no projeto sfz-architecture-bom:
mvn install -DskipTests
-
Declare a versão em desenvolvimento como parent no outro projeto.
Para utilizar o BOM basta declarar ele como parent:
<parent>
<groupId>br.gov.al.sefaz.architecture</groupId>
<artifactId>sfz-architecture-bom</artifactId>
<version>{{versao-bom}}</version>
<relativePath/>
</parent>
Substitui {{versao-bom}}
pela versão desejada.
Código comum de configuração integração de logging.
1) Habilite a integração
Numa classe Configuration declare a anotação br.gov.al.sefaz.logging.spring.EnableSefazLogging
.
@Configuration
@EnableSefazLogging
public class SefazConfiguration {
}
2) Configure as propriedades
Declare as propriedades no application-{{profile}}.yml
do profile desejado. Veja exemplo comentado a seguir:
sefaz:
logging:
logstash:
enabled: true # habilita a integração do logstash
host: log.sefaz.al.gov.br # endereço do servidor do logstash
Alternativamente use variáveis de ambiente ou properties.
Propriedades:
sefaz.logging.logstash.enabled=true
sefaz.logging.logstash.host=log.sefaz.al.gov.br
Variáveis de ambiente:
SEFAZ_LOGGING_LOGSTASH_HOST=true
SEFAZ_LOGGING_LOGSTASH_HOST=log.sefaz.al.gov.br
sefaz.logging.logstash.enabled
: Habilita ou desabilita o logstash no projeto, valores possíveis:true
efalse
.sefaz.logging.logstash.host
: Hostname do servidor do Logstash.sefaz.logging.logstash.port
: porta do servidor do Logstash.sefaz.logging.logstash.queue-size
: Tamanho da fila de envio assíncrona dos logs.
Numa classe Configuration declare a anotação br.gov.al.sefaz.database.config.EnableSefazOracleDatabase
.
@Configuration
@EnableSefazOracleDatabase
public class SefazConfiguration {
}
Atenção: não é necessário declarar tipo de Datasource, ele já é definido pela configuração.
spring:
datasource:
url: jdbc:oracle:thin:@localhost:1521:DBIC
username: admdba006
password: admdba006
Definindo um tamanho de pool maior (opcional)
spring:
datasource:
# ...
hikari:
maximum-pool-size: 40
Para identificar o usuário que está causando as alterações no banco de dados para fins de histórico é necessário ter um
bean do Spring que implemente a interface br.gov.al.sefaz.database.historico.FornecedorIdentidadeHistoricoDados
. O
contrato desta interface informa para o histórico se as alterações correntes foram originados de uma ação de usuário
final e quais os dados desse usuário. Sem nenhuma implementação registrada a integração não vai funcionar.
Como registrar uma implementação própria.:
@Bean
FornecedoridentidadeHistoricoDadosImplentacao meufornecedoridentidadeHistoricoDados() {
return new FornecedoridentidadeHistoricoDadosImplentacao()
}
Implementação anônima
Caso a aplicação não possua interações com qualquer usuário basta registrar a implementação
br.gov.al.sefaz.database.historico.UsuarioAnonimoFornecedoridentidadeHistoricoDados
@Bean
UsuarioAnonimoFornecedoridentidadeHistoricoDados fornecedoridentidadeHistoricoDados() {
return new UsuarioAnonimoFornecedoridentidadeHistoricoDados();
}