-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Ambientes homologados incluem sistemas Linux baseados em Debian (em desenvolvimento) e MUSL (para contêineres):
- Debian: Ubuntu 20.04 x86-64 e derivações (testado também no Xubuntu 20.04 x86-64 e no Pop!_OS 20.04 x86-64);
sudo apt update
sudo apt install busybox graphviz ttf-mscorefonts-installer
- MUSL: Alpine Linux 3.13;
sudo apk --update --no-cache add busybox-extras graphviz ttf-freefont
- IDE: OpenJDK HotSpot 11
- Projeto: OpenJDK HotSpot 8
- Criar subdiretórios do módulo PostgreSQL:
$JBOSS_HOME/modules/org/postgresql/main/
; - Efetuar o download do driver JDBC PostgreSQL e gravar como
$JBOSS_HOME/modules/org/postgresql/main/postgresql-42.2.23.jar
; - Criar arquivo
module.xml
, com o conteúdo abaixo, como$JBOSS_HOME/modules/org/postgresql/main/module.xml
<?xml version="1.0"?>
<module xmlns="urn:jboss:module:1.1" name="org.postgresql">
<resources>
<resource-root path="postgresql-42.2.23.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
Para validar documentos na opção "Gerar Protocolo", é preciso criar chaves e configurar o standalone.xml
.
- Acessar https://www.google.com/recaptcha/admin/create;
- Configurar tipo para reCAPTCHA v2;
- Configurar os campos domínio e etiqueta (para ambiente loca, como
localhost
);
Copiar as chaves para o standalone.xml
nas seguintes propriedades:
siga.recaptcha.key
siga.recaptcha.pwd
Configurar o settings.xml
do maven para incluir o nexus da codata.
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>nexus-codata</id>
</server>
</servers>
<mirrors>
<mirror>
<id>codata</id>
<name>CODATA Public Repository</name>
<url>https://nexus.codata.pb.gov.br/repository/maven-public/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
<profiles>
<profile>
<id>enable-snapshots</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>codata-public-with-snapshots</id>
<name>CODATA Public Repository</name>
<url>https://nexus.codata.pb.gov.br/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
<repository>
<id>central</id>
<url>http://central.maven.org/maven2/</url>
</repository>
</repositories>
</profile>
</profiles>
</settings>
Para servir imagens dinamicamente, foi adotado como default o path /opt/pbdoc/imagens
. Então, é preciso criar tais pastas.
- OBS: o path pode ser alterado via propriedade
siga.base.imagem
do standalone.xml
Argumento -vm
apontando para a JDK 11 (por padrão, o Eclipse vem apontando pra uma JRE e precisa ser alterado para JDK)
-vm
/path/to/java/11/bin
Argumentos -Xms
e -Xmx
-Xms2g
-Xmx4g
Acessar: Window > Preferences > Maven > Discovery e clicar no botão "Open Catalog". Instalar o connector "build-helper" que adiciona as classes geradas em "target/generated-sources/java" ao classpath do projeto.
- Pode ser necessário aumentar um pouco a memória RAM disponível para o JBoss
Não existe uma regra exata sobre valores disponibilizados de memória RAM no sistema. Também nada impede que o servidor de aplicação consiga executar com menos memória RAM do que o informado aqui, desde que um mínimo necessário esteja disponível.
A título de informação, em desenvolvimento homologamos com a utilização dos seguintes parâmetros:
-Xms2g -Xmx4g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m
.
Garantir que apenas os seguintes validadores estejam ativos. Os outros, desativar tanto no build automático quanto no manual.
Configurar JBoss EAP 7.2 para carregar o módulo siga-vraptor-module
como ZIP/WAR ao invés do padrão explodido.
Isso se faz necessário porque o empacotamento deste módulo reorganiza alguns arquivos de tags TLD nas pastas META-INF
e WEB-INF
.
É necessário adicionar as seguintes aplicações de terceiros na pasta $JBOSS_HOME/standalone/deployments
:
Garantir que as propriedades hibernate.show_sql
e hibernate.format_sql
estão setadas como true
nos arquivos:
siga/src/main/webapp/META-INF/persistence.xml
siga-ex/src/main/resources/META-INF/persistence.xml
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
- Instanciação do PostgreSQL 12 com Docker:
O comando abaixo vai mapear a porta 5432 do host. Se houver conflito com alguma instância local do PostgreSQL já em execução, alterar para outra porta como a 5433; ex.:
-p 5433:5432
docker run --restart always -p 5432:5432 --shm-size 256m --name postgres-12 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -d postgres:12-alpine
- Acessar PostgreSQL do container docker.
docker exec -it postgres-12 bash
psql -U postgres
- Criar um banco de dados. Em desenvolvimento utilizamos o nome
pbdoc
;
CREATE DATABASE pbdoc;
-
Em desenvolvimento, por padrão, utilizamos um DUMP de produção que já vem com tudo configurado.
- copiar dump para o container
docker cp dumpfile.dump postgres-12:/
- Restauração de DUMP SQL a partir do comando
psql
:
psql -h localhost -p 5432 -U postgres -d pbdoc -f dumpfile.sql
- Restauração de DUMP binário a partir do comando
pg_restore
:
O parâmetro -j refere-se à quantidade de jobs e depende da disponibilidade de núcleos da CPU: aqui utilizando 4 como um padrão
pg_restore -h localhost -p 5432 -U postgres -j 4 -d pbdoc dumpfile.dump -v
-
Se for inicializar a aplicação sem DUMP, dentro do banco
pbdoc
, executar o seguinte script para garantir a criação dos schemas utilizados pela aplicação
CREATE SCHEMA corporativo;
CREATE SCHEMA siga;
CREATE SCHEMA sigawf;
- Assumindo que o usuário "postgres" é o usuário de acesso ao sistema, executar:
ALTER ROLE postgres SET search_path TO "corporativo", "siga", "sigawf", "public";
- Uma alternativa para gerenciamento de bancos de dados via UI é utilizar o https://www.pgadmin.org/download;
- Os procedimentos para instalação via APT em distribuições baseadas no Ubuntu estão aqui https://www.pgadmin.org/download/pgadmin-4-apt
- [GRAPHVIZ] Running a GraphVIZ server on GCE: https://omerio.com/2013/11/03/running-a-graphviz-server-on-google-compute-engine/
- [GRAPHVIZ] DOT - Graph Description Language: https://en.wikipedia.org/wiki/DOT_(graph_description_language)