Skip to content
rafaelhugov edited this page May 29, 2024 · 14 revisions

Configuração de Ambiente Homologado

Sistema Operacional

Ambientes homologados incluem sistemas Linux baseados em Debian (em desenvolvimento) e MUSL (para contêineres):

sudo apt update
sudo apt install busybox graphviz ttf-mscorefonts-installer
sudo apk --update --no-cache add busybox-extras graphviz ttf-freefont

Java Development Kit (JDK)

Servidor de Aplicação

Driver JDBC

  • 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>

Setup reCAPTCHA v2

Para validar documentos na opção "Gerar Protocolo", é preciso criar chaves e configurar o standalone.xml.

Copiar as chaves para o standalone.xml nas seguintes propriedades:

  • siga.recaptcha.key
  • siga.recaptcha.pwd

Maven

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>

Setup para recursos dinâmicos

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

IDE

Alterar valores de configuração no eclipse.ini:

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

Projetos no Eclipse

Projetos abertos do Eclipse

Instalar adaptador JBoss EAP 7.2

Instalando adaptadores Red Hat

Instalando adaptador Red Hat JBoss EAP 7.2

Configuração local padrão

Configuração da instância com JDK 8

Connector "build-helper" pro Plugin Maven do Eclipse

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.

Alterando parâmetros de utilização de memória na execução do JBoss

  • 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.

Parâmetros de utilização de memória do JBoss

Validadores Ativos

Garantir que apenas os seguintes validadores estejam ativos. Os outros, desativar tanto no build automático quanto no manual.

Validadores ativos

Módulos JBoss

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.

Módulo siga-vraptor-module como ZIP/WAR

Aplicações de terceiros no JBoss

É necessário adicionar as seguintes aplicações de terceiros na pasta $JBOSS_HOME/standalone/deployments:

Adicionando logs de queries no JPA

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" />

PostgreSQL 12+

  • 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";

PgAdmin4