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.
$ 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:
$ 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:


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:
{"outcome" => "success"}
The batch executed successfully
{"outcome" => "success"}
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:

Digite Jboss Tools no campo Find e clique em Install.

Prossiga com a instalação clicando em confirmar:

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

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.

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

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:

Selecione o Wildfly 18:

Selecione o Home Directory do Wildfly localmente:

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

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

Clique em Open Launch Configuration:

Altere/inclua os seguintes argumentos na opção VM arguments:
- Xms: 1024 ou mais;
- Xmx: 1024 ou mais;