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