Pular para o conteúdo principal

Configurando ambiente de desenvolvimento

Conhecimentos necessários e desejáveis

Necessários

  • Linguagem de programação Java
  • PrimeFaces
  • Maven
  • Git
  • Persistência com JPA e Hibernate
  • Linguagem SQL do banco de dados PostgreSQL
  • JSF (PJE1)
  • JavaScript, TypeScript;
  • Angular (PJE2)
  • SpringBoot, SpringCloud (PJE2)
  • Wildfly, Jboss EAP

Desejáveis

  • Linux
  • GitLab
  • Jira
  • Padrões de projeto (design patterns)
  • JBPM
  • Ter tido algum contato de uso com o sistema PJe

Sistemas de apoio

Jira – gerenciador de desenvolvimento de demandas https://www.cnj.jus.br/jira;

GitLab – sistema de controle de versões do código http://git.cnj.jus.br;

Rocketchat – ferramenta de comunicaçãoda comunidade https://rocketchat.cloud.pje.jus.br;

SonarQube – ferramenta de análise estática de código https://sonarqube.cnj.jus.br.

Configurando o ambiente de desenvolvimento PJeLegacy com Eclipse

Pré-requisitos mínimos do sistema

  • Java JDK 8
  • PostgreSQL 9.4 ou superior
  • Apache Maven 3
  • Wildfly 18 com Mojarra 1.2
  • Docker 18.09 ou superior
  • NPM 6 ou superior
  • Angular CLI
  • Git client

Maven

Faça o download do Maven em https://maven.apache.org/download.cgi. Os passos para instalação estão descritos em https://maven.apache.org/install.html.

No diretório raiz do usuário será necessário alterar/criar o arquivo settings.xml que se encontra na pasta .m2.

~/.m2/settings.xml
$ cd ~/.m2
$ touch settings.xml

Incluir o seguinte conteúdo no arquivo settings.xml

<?xml version="1.0" encoding="UTF-8"?>
<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 http://maven.apache.org/xsd/settings-1.0.0.xsd">

<servers>
<server>
<id>nexus</id>
<username>developer</username>
<password>123456</password>
</server>
</servers>
<mirrors>
<mirror>
<id>nexus</id>
<name>nexus.cnj.jus.br</name>
<url>https://nexus.cnj.jus.br/repository/maven-public</url>
<mirrorOf>external:*</mirrorOf>
</mirror>
</mirrors>
</settings>

SGBD PostgreSQL

Faça o download do PostgreSQL em https://www.postgresql.org/download/

Configurando o arquivo postgresql.conf

É necessário aumentar o parâmetro max_prepared_transactions (https://www.postgresql.org/docs/18/runtime-config-resource.html#GUC-MAX-PREPARED-TRANSACTIONS) presente no arquivo de configuração postgresql.conf:

/etc/postgresql/14/main/postgresql.conf
$ locate postgresql.conf
$ cd /etc/postgresql/9.1/main
$ sudo gedit postgresql.conf

Colocar um valor maior que 20.

Criando um banco de dados novo

Criar um novo banco com os parâmetros conforme abaixo:

Imagem ilustrando a criação de um novo banco de dados 1

Imagem ilustrando a criação de um novo banco de dados 2

Restaurar um dump no novo banco de dados criado

$ psql -U postgres -h localhost -d pje < "~/Dumps/dump.sql"

ou

$ pg_restore -U postgres -h localhost -v -Fc -d nome_base arquivo.dump

Servidor de aplicação Wildfly

Faça o download do Wildfly 18.0.1 em https://www.wildfly.org/downloads/

O Wildfly deve conter alguns módulos extras (PostgreSQL, Mojarra, JMS). Com o intuito de facilitar a configuração, copie o arquivo https://cnj-pje-programs.s3.sa-east-1.amazonaws.com/pje/config_pje_wildfly.zip para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) a partir do diretório descompactado criado.

Execute o comando:

<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli

Se o comando executou com sucesso, deverá aparecer a seguinte mensagem:

jboss-cli:
{"outcome" => "success"}
The batch executed successfully
{"outcome" => "success"}
Nota

O arquivo de standalone-full.xml deve ser utilizado para subir o servidor de aplicação.

Clonando o repositório do git

O pje-legacy encontra-se no repositório do PJe.

Para clonar o repositório, execute o comando abaixo:

$ git clone git@git.cnj.jus.br:pje/pje.git

JCR Storage

JCR Storage é responsável pelo armazenamento dos binários utilizados pelo PJe.

Clonando o repositório do git

O jcr-storage encontra-se no repositório do JCR Storage.

Para clonar o repositório, execute o comando abaixo:

$ git clone git@git.cnj.jus.br:utilitarios/jcr-storage.git

Gerando jar e executando JCR

Após baixar o projeto e com maven devidamente configurado, execute:

$ mvn clean package -DskipTests=true

Feito isso será gerado o arquivo jcr-storage-server-exec.jar na pasta target do projeto. Conceda permissão de execução e rode esse jar passando os parâmetros:

$ java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=D:<HOME_DIR>/src/main/resources/server.properties

JCR Storage

Próximo passo é criar um arquivo jcr-storage.properties num diretório do seu ambiente, por exemplo, D:\\jcr-storage.properties, com seguinte conteúdo:

jcr.username=admin
jcr.password=admin
jcr.url=http://localhost:9000/storage/documents
jcr.chunkSize=800000
jcr.hostMaxConn=10000

Cliente Web do PJe (pje-frontend)

O cliente web do Pje (PJE2-WEB) encontra-se no repositório do PJe2-WEB.

Para clonar o repositório, execute:

$ git clone git@git.cnj.jus.br:pje2/pje2-clientes/pje2-web.git

Instale as dependencies:

npm install

Inicialize a aplicação. Ela estará disponível na porta 4200 (http://localhost:4200):

npm start

Eureka e Gateway (Opcional)

O Eureka (PJe-Discovery) e Gateway (PJe-Gateway) são 2 componentes que podem ser instânciados através do Docker localmente.

Para isso é preciso fazer o login no registry do CNJ:

$ docker login registry.cnj.jus.br
Login: <LOGIN>
Password: <PASSWORD>
Login Succeeded

Crie um arquivo docker-compose.yml:

version: "3"
services:
discovery:
image: registry.cnj.jus.br/pje2/pje-discovery:latest
ports:
- '8761:8761'
gateway:
image: registry.cnj.jus.br/pje2/pje-gateway:latest
ports:
- '8180:8180'
- '8181:8181'
environment:
- EUREKA_SERVER_DEFAULT_ZONE=http://discovery:8761/eureka/
- HOSTNAME=localhost

Próximo passo, é executar o docker compose no diretório do arquivo yml criado:

$ docker-compose up -d

Eclipse

Plugins

JbossTools

Instalar o plugins JBoss Toos para o eclipse. Clique em Help > Eclipse Marketplace:

Imagem plugin filesync

Digite Jboss Tools no campo Find e clique em Install.

Imagem plugin filesync

Prossiga com a instalação clicando em confirmar:

Imagem plugin filesync

Após o restart do Eclipse, o ícone do JBoss Tools aparecerá em Help > About Eclipse IDE:

Imagem plugin filesync

SonarLint

SonarLint auxilia o desenvolvedor a detectar e corrigir problemas no código enquanto codifica.

Como instalar: No Eclipse, clique em Help → Eclipse Marketplace. Na aba Search digite SonarLint e pressione Enter. Clique em Install para prosseguir com o processo de instalação.

Imagem plugin filesync

  • Durante a codificação o usuário poderá solicitar uma análise do código produzido. Clique com o botão direito do mouse sobre o projeto e selecione SonarLint → Analyse changed files

  • Existe também a possíbilidade de se realizar um bind (vínculo) com o SonarQube do CNJ. Clique com o botão direito do mouse sobre o projeto e selecione SonarLint → Bind to SonarQube or SonarCloud. Essa associação permite que as mesmas regras aplicadas ao projeto durante a análise pelo SonarQube estejam presentes no Eclipse.

Flyway (Controle de versão e migração de bancos de dados)

No projeto pje-comum, existe um diretório chamado migrations onde estão os scripts de migração do banco do Pje para versão corrente do Pje.

Para configurar o flyway no Eclipse, abra o pom.xml desse projeto e clique no menu Run > Run Configurations, selecione Maven Build e clique em New launch configuration:

Imagem plugin filesync

Inclua o profile pje-descanso no arquivo settings.xml:

<servers>
<server>
<id>pje-descanso</id>
<username>postgres</username>
<password>any_password</password>
</server>
</servers>
<profile>
<id>pje-descanso</id>
<properties>
<flyway.serverId>pje-descanso</flyway.serverId>
<flyway.driver>org.postgresql.Driver</flyway.driver>
<flyway.url>jdbc:postgresql://localhost:5432/pje</flyway.url>
</properties>
</profile>

Após esses dois passos, ao clicar em run, deverão aparecer as seguintes informações no console:

---
[INFO] ------------------------------------------------------------------------
[INFO] Building pje-comum 2.1.1.6-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] --- flyway-maven-plugin:2.2.1:migrate (default-cli) @ pje-comum ---
[INFO] Current version of schema "public": 2.1.1.4.001
[INFO] Successfully applied 56 migrations to schema "public" (execution time 00:12.485s).
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
---
Wildfly

Após a instalação do JBoss Tools, na aba Servers, clique com botão direito e adicione um novo server:

Imagem plugin filesync

Selecione o Wildfly 18:

Imagem plugin filesync

Selecione o Home Directory do Wildfly localmente:

Imagem plugin filesync

Clicar com botão direito e adicionar o pje-web para Wildfly:

Imagem plugin filesync

Ao clicar 2 vezes em cima do Server Wildfly, será exibido uma tela de Overview:

Imagem plugin filesync

Clique em Open Launch Configuration:

Imagem plugin filesync

Altere/inclua os seguintes argumentos na opção VM arguments:

  • Xms: 1024 ou mais;
  • Xmx: 1024 ou mais;
  • noverify: flag responsável por evitar verificaçãod o bytecode gerado;
  • Dpje.producao=false: flag responsável de indicação do ambiente;
  • -Dbr.jus.cnj.pje.jcr-storage.configuration=<HOME_DIR>/jcr-storage.properties: arquivo de configuração do JCR Storage.

Ainda na janela de Open Launch Configuration, clique na aba Environment e adicione as seguintes variáveis:

ENV_PJE2_CLOUD_REGISTRAR=false
ENV_PJE2_CLIENTE_URL=http://localhost:4200

Altere a opção activeByDefault para true no arquivo pom.xml no projeto pje-web, habilitando o profile do jcr-storage:

<profile>
<id>jcr-storage</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<dependencies>
<dependency>
<groupId>br.jus.cnj.pje</groupId>
<artifactId>jcr-storage-client</artifactId>
</dependency>
</dependencies>
</profile>

Próximo passo, é iniciar o Wildfly:

Imagem plugin filesync

Dando tudo certo, o PJe estará disponível em http://localhost:8080/pje

Imagem plugin filesync