terça-feira, 16 de junho de 2020

Contas Pagar/Receber - Parte I - Criação do Projeto MAVEN

Introdução

Vou desenvolver uma aplicação de Contas a Pagar e Receber, utilizando alguns recursos do JARCH e BPMN. Essa aplicação terá 4 CRUD's: Banco, Centro Custo, Categoria e Pessoa, além dos lançamentos de Conta a Pagar e Conta a Receber. Será implementado também um relatório para cada tipo de conta, bem como um dashboard. Pra finalizar faremos uma integração com BPM de acordo com o valor da conta, simulando uma autorização a nível de Supervisor, Gerente e Diretoria. 
Nesse primeiro post vou gerar a estrutura do projeto utilizando archetype JARCH com MAVEN.

Criação do Projeto MAVEN

Agora vou criar a estrutura do projeto via MAVEN, o JARCH já possuí um archetype para geração de um projeto JAVAEE. Então vou criar um projeto no formato MAVEN utilizando a linha de comando:

mvn -B archetype:generate \
     -DarchetypeGroupId=br.com.jarch \
     -DarchetypeArtifactId=javaee-archetype \
     -DarchetypeVersion=20.5.4 \
     -DgroupId=br.com.jarch \
     -DartifactId=contas \
     -Dversion=1.0.0 \
     -DsiglaSistema=GCPR \
     -DdescricaoSistema="Gerenciamento de Contas a Pagar e Receber"

Esse comando irá gerar um projeto contas com 4 módulos:
contas-client: Esse módulo trata dos fontes core da aplicação sendo o centralizador os demais módulos depende desse módulo.
contas-web: Esse módulo trata da camada visual da aplicação (WEB), contendo as Action's, páginas, images, etc...
contas-ws: Esse módulo trata da camada de serviços da aplicação (API) caso exista.
contas-job: Esse módulo trata da camada de processamentos da aplicação.

CONTAS-CLIENT
Esse módulo já foi criado com a seguinte estrutura:
package-info.java: Onde será implementado as anotações para a geração do código.
bundle_pt_BR.properties: Arquivo do padrão I18N.
beans.xml: Ativação do CDI para o módulo.
ValidationMessages_pt_BR.properties: Arquivo para armazenamento de mensagens para utilização do BeanValidation.


CONTAS-JOB
Esse módulo já foi criado com a seguinte estrutura:
ProcessJob.java: Uma estrutura para processamento de todos os Tenant's.
persistence.xml: Configuração da aplicação em relação a JPA, datasource, schema e auditoria.
beans.xml: Ativação do CDI para o módulo.
jboss-web.xml: Configuração do contexto no servidor de aplicação (Wildfly)
web.xml: Configuração da aplicação WEB.


CONTAS-WEB
Esse módulo já foi criado com a seguinte estrutura:
BaseDelegate.java: Uma estrutura base para processamento de Delegates (BPM).
SampleDelegate.java: Uma exemplo de implementação de um Delegate (BPM).
ApplicationListener.java: Configuração do listener de contexto de aplicação.
SessionListener.java: Configuração do listener de contexto de aplicação.
persistence.xml: Configuração da aplicação em relação a JPA, datasource, schema e auditoria.
processes.xml: Configuração do gerenciamento do BPM.
bemVindo.xhtml: Uma página inicial de bem vindo.
images: Imagens de exemplo do login e menu.
css: Configuração de estilização personalizada.
js: Configuração de javascript personalizado.
beans.xml: Ativação do CDI para o módulo.
faces-config.xml: Configuração do JSF na aplicação.
jboss-web.xml: Configuração do contexto no servidor de aplicação (Wildfly)
web.xml: Configuração da aplicação WEB.


CONTAS-WS
Esse módulo já foi criado com a seguinte estrutura:
BaseRest.java: Uma estrutura base para serviçoes via REST.
ContainerRequestFilterProvider.java: Uma configuração para interceptação de requisão para API de serviço REST.
ContainerResponseFilterProvider.java:  Uma configuração para interceptação de resposta para API de serviço REST.
SampleRest.java: Um exemplo de implementação de serviço REST.
ServiceApplication.java: A configuração do PATH raiz dos serviços REST.
SampleSoap.java: Um exemplo de implementação de serviço SOAP.
persistence.xml: Configuração da aplicação em relação a JPA, datasource, schema e auditoria.
beans.xml: Ativação do CDI para o módulo.
jboss-web.xml: Configuração do contexto no servidor de aplicação (Wildfly)
web.xml: Configuração da aplicação WEB.


Executando 
Vou  agora configurar o datasource no servidor do módulo web e publicar no servidor Wildfly. 

Após a publicação nota-se que presença da tela de login e posteriomente pode-se ver o menu:

Conclusão

Assim finalizo esse primeiro post sobre a criação de um projeto de contas a pagar e receber. A estrutura apresentada nesse post contém diversas implementações prontas otimizando nosso tempo. No próximo post vou criar o primeiro CRUD. 

Segue o link da video aula sobre esse post: https://youtu.be/-ay7de7MdRc

Até mais.

Nenhum comentário:

Postar um comentário

Versão 23.3.0-Final

      Introdução Nesse post vou mostrar as principais novidades da versão 23.3.0, algumas correções e pequenas alterações. Alterações Além d...