Escolar Documentos
Profissional Documentos
Cultura Documentos
SESSÃO II
ÍNDICE
01 Introdução Arquitetura Online
1.1 Revisão dos principais componentes
1.2 Transações
1.3 Bibliotecas
1.4 Conexões com BD
1.5 Desenvolvimento de documentos
02 Exemplos OnLine
2.1 Objeto de transferência de dados (DTO ́s)
2.2 Criando transações
2.3 Criação de bibliotecas lógicas de negócios de
aplicativos
2.4 Usando utilitários de log
2.5 Conexão de transação --> Library
2.6 Criar biblioteca JPA
2.7 Conexão de biblioteca --> Library
Introdução Arquitetura Online
01
REVISÃO DOS PRINCIPAIS COMPONENTES
Componentes Online:
TREINAMENTO APX | 5
01
REVISÃO DOS PRINCIPAIS COMPONENTES
Online:
O Aplicativo possui utilitários de Arquitetura que facilitam o acesso a fontes de
dados.
– Utilitários comuns a todas as bibliotecas: Esses utilitários podem ser usados de qualquer
biblioteca, seja qual for o tipo que sejam. Esses utilitários serão vistos na seção "utilitários
comuns":
– Erros e avisos
– Informações de recuperação/saída
TREINAMENTO APX | 7
Criação da Serv. Back-end
01
CRIAÇÃO DA SERV. BACK-END
MENU PRINCIPAL
8
TREINAMENTO APX | 10
A implementação do serviço de Backend é gerada automaticamente a partir dos
editores das transações que ele utiliza, associando cada operação em uma
entidade em cada uma delas. Portanto, essa classe não deve ser modificada
diretamente.
TREINAMENTO APX | 11
Criação de DTO
CRIANDO UM DTO DO MENU PRINCIPAL
Um DTO é a representação Java de uma Entidade Comercial. Ele pode ser criado com o
Próximas opções:
10
TREINAMENTO APX | 10
Criação de Transações
CRIANDO TRANSAÇÕES MENU PRINCIPAL
Acabamento em lata
12
TREINAMENTO APX | 12
01
CRIAÇÃO DE TRANSAÇÕES
ASSISTENTE DE CRIAÇÃO (E IV)
Se o transação FORMAÇÃO | 14
01
CRIAÇÃO DE TRANSAÇÕES
ASSISTENTE DE CRIAÇÃO (E IV)
-Nome
- Tipo (String, Long e Int)
- Tamanho (valor diferente de 0)
- Obrigatório (Opcional ou obrigatório)
múltiplo é permitido
. A partir do ASO, o protocolo de
comunicação será sempre
QP05, então isso é
transparente para o
desenvolvedor
01
CRIAÇÃO DE TRANSAÇÕES
ASSISTENTE DE CRIAÇÃO (E IV)
15
TREINAMENTO APX | 15
01
CRIAÇÃO DE TRANSAÇÕES
ASSISTENTE DE CRIAÇÃO (E IV)
16
TREINAMENTO APX | 16
01
CRIAÇÃO DE TRANSAÇÕES
ASSISTENTE DE CRIAÇÃO (E IV)
Ao final do assistente, um projeto Java Maven é construído com todas as dependências necessárias para o
desenvolvimento da transação desde o seu início. Por outro lado, o arquivo Java gerado pelo assistente que
define a transação é aberto para edição.
Arquivo Editar Fonte Refatorar Navegar Pesquisar Projeto Elara ClearCase Serena Executar CVS Janela Ajuda
$0Q G O $ 13 • IB TI E $ Debug
Sim - c<Elara
H Package Explorer 23
J) UUAATO01OIESTransactionjava23
0 UUAATO0101-PT Pacote com.BBVA.UUAA ;
3 src/main/java
E com.bbva.uuaa
J AbstractUUAATOlOl EST ransaction.java
J UUAAT00101ESTransaction.java
63 src/main/recursos
* Implementação de lógica de
negócio.
* Gautor XE23423
01
CRIAÇÃO DE TRANSAÇÕES
ASSISTENTE DE CRIAÇÃO (E IV)
META-INF
• MANIFESTO. MF
multilíngüe-ES. Propriedades
Classe Pública UUAATO0101ESTransaction estende AbstractUUAATOO1O1ESTransaction {
sql-UUAAT001-01-PT.properties
UUAAT001-01-PT.xml
©Substituir public void
execute() { // ALL
09 src/teste/java
H com.bbva.uuaa
J UUAATOOlOlESTransactionTest.java
CH src/teste/recursos
& META-INF
£ UUAATOOlOlESTest.xml common-env.properties
Iog4j. Propriedades
UUAA.propriedades
M pom.xml
17
TREINAMENTO APX | 17
01
CRIAÇÃO DE TRANSAÇÕES
ESTRUTURA DO PROJETO GERADO: ESQUELETO
até 3 UUAAT00101-PT
± Gerenciador de Pacotes
23
J [ src/main/java
src\main\java.- Contém o código-fonte da lógica do
J th com.bbva.uuaa aplicativo. O assistente gera o pacote de arquitetura
| J | Abstrato ctU UAAT00101 EST ransaction.j ava padrão contendo:
| J | UUAAT00101 EST correu saetí em. ..java - a classe Java que implementa a transação
- A classe abstrata da qual ele herda.
J 0 src/main/recursos
J & META-INF
src\main\resources.- Contém os recursos e pastas
E MANIFESTO. MF gerados para uso:
E multilanguage-PT.properties - O arquivo de manifesto
O sqI-UUAAT001 -01 -ES. Propriedades
- o arquivo XML de parametrização da transação
- O arquivo de configuração multilíngue
x UUAAT001-01-PT.xml
J [ src/teste/java src\test\java.- Contém os pacotes que definem as
J th com.bbva.uuaa classes usadas para os testes de unidade da transação,
J UUAAT00101 EST ransactionTest .java Jsrc/test/resources
por padrão, uma vez que o assistente é executado, há o
pacote padrão que contém um único teste definido que
j & M ETA-INF j & primavera
será usado para fazer os testes de unidade da transação.
x UUAATO0101ESTestxmI
E common-env.properties src\test\resources.- Contém os recursos e pastas
E Iog4j.propriedades necessários para a execução de testes de unidade.
E UUAA. Vantagens
A pasta de destino armazenará o JAR da transação
- =Biblioteca do Sistema JRE [jdId.7.G_ll] sempre que a transação for compilada.
Dependências D Bi Maven
- 0 sre
M pom.xml
18
TREINAMENTO APX | 18
CRIANDO TRANSAÇÕES
ESTRUTURA DO PROJETO GERADO: TESTES JUNIT
(I)
19
TREINAMENTO APX | 19
Criação de
Bibliotecas
01
CRIAÇÃO DE BIBLIOTECAS
MENU PRINCIPAL
21
TREINAMENTO APX | 21
01
CRIAÇÃO DE BIBLIOTECAS
ASSISTENTE DE CRIAÇÃO
APX
CAMADA DE ACESSO
Conectores A DADOS
DESACOPLADA
XA Driver
✓ A Arquitetura é responsável
por gerenciar a execução da
confirmação/reversão
ORÁCULO
REPLICAÇÃO
ETL
RÉPLICA
01
CRIAÇÃO DE BIBLIOTECAS
ASSISTENTE DE CRIAÇÃO: BIBLIOTECA JPA
E com.bbva.uuaa.lib.rOOl.domain
um E
com.bbva.uu 27
TREINAMENTO APX | 27
aa.lib.r001
01
CRIAÇÃO DE BIBLIOTECAS
ASSISTENTE DE CRIAÇÃO: BIBLIOTECA JPA (III)
Para usar o utilitário APX Online em relação ao JPA, da classe de lógica de negócios:
this.jpaUtils.get("db1").createNamedQuery(query)this.jpaUtils.get("db1").XXX()
• O nome do recurso lógico no qual você deseja executar a consulta será recuperado
28
• Cada nome de um recurso lógico representará uma conexão com um banco de dados diferente
/src/main/java.
29
• Para bibliotecas JPA, um arquivo de persistência chamado "persistência.xml será
criado em /src/main/resources"
• Esse arquivo deve incluir todos os nomes das entidades JPA usadas na
TREINAMENTO APX | 38
01
CRIAÇÃO DE BIBLIOTECAS
ASSISTENTE DE CRIAÇÃO: BIBLIOTECA JPA (III)
30
TREINAMENTO APX | 39
01
CRIAÇÃO DE BIBLIOTECAS
ASSISTENTE DE CRIAÇÃO: BIBLIOTECA JPA( E VI)
■ • Substituir
— public String execute() {
MADEIREIRO.debug("Procurando descrição para o idioma 'es'"); final EntityClass entityClass = novo EntityClass();
entityClass.setLanguageCode("en");
entidade final EntityClass = isso.JPAÜTILS.get("unidade de persistência").find(EntityClass.classe, entidadeClasse); retornar entity.getLanguageDescription();
}}
3 *UUAAR002Impl.java 4 persistência.xml 23
http://java . Sol. com/xml/ns/persistence" xmlns : xsi="http://vvv. w3. org/200L/XMLSchema -instância"
9 versão de persistência="2.0" • xmlns="
xsi : schemaLocation="http://java . Sol. com/xml/ns/persistência http://java. Sol. coto./xml/ns /pers istence/pers istence_2_C
TREINAMENTO APX | 41
Exemplos OnLine
05
OBJETO DE TRANSFERÊNCIA DE DADOS (DTO ́S)
■ Especialidade Longa
■ Data da cordaHigh
TREINAMENTO APX | 43
02
CRIANDO TRANSAÇÕES
P Desenvolver transações:
- MAPPT001
- MAPPT002
Exibir arquivos: Transaccion_MAPPT001-01-MX.xlsx e Transaccion_MAPPT002-01-
MX.xlsx
TREINAMENTO APX | 44
CRIAÇÃO DE BIBLIOTECAS LÓGICAS DE NEGÓCIOS DE
APLICATIVOS
) Desenvolver bibliotecas:
- MAPPR001, e implementar o método de registro e consulta das informações dos tipos de
bem.
- MAPPR002, e implementar o método de registro e consulta de informações no banco de
dados.
Exibir arquivos: MAPPR001*.java e MAPPR002*.java
TREINAMENTO APX | 45
CRIAÇÃO DE BIBLIOTECAS
COMPONENTES DA BIBLIOTECA: PROJETOS
37
TREINAMENTO APX | 37
01
CRIAÇÃO DE BIBLIOTECAS
COMPONENTES DA BIBLIOTECA: BIBLIOTECA DE INTERFACE
39
TREINAMENTO APX | 39
4
TREINAMENTO APX | 50
CRIAÇÃO DE BIBLIOTECAS
COMPONENTES DA BIBLIOTECA: CLASSE ABSTRATA
• Para bibliotecas de tipos "especiais", o serviço associado ao seu tipo será recuperado,
por exemplo, para o MongoDB:
public void setMongoDBUtils(MongoDBUtils mongoDBUtils)
{
this.mongoDBUtils = mongoDBUtils;
}
40º
TREINAMENTO APX | 40
CRIAÇÃO DE BIBLIOTECAS
COMPONENTES DA BIBLIOTECA: CLASSE
IMPLEMENTAÇÃO
5
TREINAMENTO APX | 50
CRIAÇÃO DE BIBLIOTECAS
COMPONENTES DA BIBLIOTECA: OSGI ARQUITECTURA
• Esse arquivo define os serviços que são importados da arquitetura para a biblioteca:
• Para todas as bibliotecas, o serviço de configuração será importado
<osgi:reference id="applicationConfigurationServiceFactory" bean-
name="applicationConfigurationServiceFactory"interface="com.bbva.elara.configuration.manager.application.factory.Application
ConfigurationServiceFactory"
/>
• Para bibliotecas "especiais", o serviço associado será importado. Por exemplo, para JDBC:
<osgi:reference id="jdbcUtilsFactory" bean-
name="jdbcUtilsFactory"interface="com.bbva.elara.utility.jdbc.connector.factory.JdbcUtilsFactory"
/>
• Por sua vez, o serviço que exporta a biblioteca também é definido como tal:
<osgi:service id="uuaaR001Osgi" ref="uuaaT001" interface="com.bbva.qwpu.lib.r001.UUAAR001" />
TREINAMENTO APX | 42
CRIAÇÃO DE BIBLIOTECAS
COMPONENTES DA BIBLIOTECA: APLICATIVO OSGI
• Esse arquivo define os serviços que são importados para a biblioteca de outras
bibliotecas.
• Esse arquivo não deve ser modificado à medida que as interações são criadas entre
as diferentes bibliotecas de aplicativos.
• Esse arquivo define os beans que serão associados aos serviços recuperados da
arquitetura:
• Para todas as bibliotecas, o bean de configuração será gerado
• Para as bibliotecas "especiais", os beans associados ao serviço correspondente serão
gerados.
• Por sua vez, o bean associado à classe também é definido, para exportação via
serviço OSGi.
44
TREINAMENTO APX | 44
01
CRIAÇÃO DE BIBLIOTECAS
COMPONENTES DA BIBLIOTECA: BEANS APLICATIVO
• Esse arquivo define os beans que serão associados aos serviços recuperados e
importados de outras bibliotecas de aplicativos:
• Por padrão, o bean associado à biblioteca é criado.
• Aqui também será definido o restante dos beans que o desenvolvedor precisa para
desenvolver sua lógica de negócios.
02
USANDO UTILITÁRIOS DE LOG
5
TREINAMENTO APX | 50
UTILITÁRIOS COMUNS
GERENCIAMENTO DE
RASTREAMENTO(I)
LOGGER SLF4j
• Ao criar um novo componente com o IDE de desenvolvimento, por padrão, ele gera a
seguinte linha com a criação de um registrador a partir do pacote org.slf4j:
Logger LOGGER = LoggerFactory.getLogger(UUAAR000Impl.class);
• O SL4FJ fornece vários métodos para gerenciamento de rastreamento, incluindo:
• LOGGER.trace(Mensagem de cadeia de caracteres,
Objeto ... args) : Imprime informações com o máximo
nível de detalhe. Receba uma mensagem e n
argumentos (opcional) para
Complemente a mensagem a ser impressa.
• LOGGER.debug(Mensagem de string, Objeto ... args) :
Permite imprimir dados informativos com detalhes
finos que são úteis para depurar o aplicativo.
• LOGGER.info(Mensagem de string, Objeto ... args) :
Imprime informações úteis que permitem ver o
progresso da aplicação.
• LOGGER.warn(Mensagem de string, Objeto ... args) :
Imprime avisos ou falhas de aplicativos não críticos,
UTILITÁRIOS COMUNS
GERENCIAMENTO DE
RASTREAMENTO(I)
que
47
não impedem que o aplicativo continue seu fluxo.
■. . m m SA A■ A _ % ■ Para
CONTROLE DE ARQUITETURA
Aplicação TX
Invocação Biblioteca de
da aplicativos 1
A Arquitetura gerencia o Biblioteca Invocação
código de conclusão da APL Biblioteca
Transação de Aplicativo e
APL
executa a confirmação ou Invocação
reversão das consultas de
Serviço APX
aplicativo.
Manipula possíveis
exceções que podem
ocorrer na pilha de
execução de transações,
bibliotecas e conectores de
arquitetura invocada.
A biblioteca valida o
Em caso de exceção, ele resultado da chamada
do conector APX. Eles podem notificar
fecha por engano e
A livraria deve A lógica do aplicativo exceções em sua
reverte os dados.
A transação deve gerenciar validar o resultado da decide os avisos ou execução. Alguns
a invocação para as invocação para as erros que deseja podem ser
bibliotecas de aplicativos e outras bibliotecas. publicar. controláveis pelo
valida os avisos ou erros A lógica do aplicativo aplicativo. Cada
decide os avisos ou conector publica o
erros que deseja seu.
Estabeleça a criticidade publicar.
dos avisos notificados
gerenciando o código de
retorno TX.
5
TREINAMENTO APX | 50
UTILITÁRIOS COMUNS
ERROS E AVISOS (II)
• Se você quiser enviar um aviso de uma livraria ou da transação, seja qual for o tipo, você
usará o método addAdvice, que adiciona o aviso a uma lista. Esse método não define a
gravidade do aviso, uma vez que o aviso é contextual para a transação e deve ser
executado a partir da transação usando o método setSeverity ou setHttpResponseCode.
49
TREINAMENTO APX | 49
1
INTRODUÇÃO
ERROS E AVISOS (III)
A arquitetura fornece os métodos "addAdvice() para o aplicativo para relatar um erro ou
aviso no código da transação.
Códigos de devolução TX
1. OK ("00") → OK
2. WARN("04") → OK + Código de Aviso
3. ENR("06") → Rejeitado + Código de erro (sem
reversão)
4. EWR("08") → Rejeitado + Código de Erro (com
Reversão)
5. ERROR("12")→ Rejeitado (erro fatal) + Código
de erro
6
TREINAMENTO APX | 50
02
TRANSAÇÃO DE CONEXÃO --> BIBLIOTECA
> Para usar uma biblioteca online de uma transação, você precisa seguir as seguintes
etapas:
- No .xml da transação Invocador devemos importar o
Dependência da biblioteca a ser invocada. Se quisermos, por exemplo,
invocar uma biblioteca UUAAR001, devemos incluir o seguinte
<dependência>
<groupId>com.bbva.uuaa</groupId>
<artifactId>UUAAR001</artifactId>
<versão>0.0.0</versão>
</dependência>
02
TRANSAÇÃO DE CONEXÃO --> BIBLIOTECA
</Pacote de importação>
TREINAMENTO APX | 62
02
TRANSAÇÃO DE CONEXÃO --> BIBLIOTECA
TREINAMENTO APX | 63
02
CRIAR BIBLIOTECA JPA
P Criar a biblioteca
- MAPPR002, e implementar o método de registro e consulta de informações no banco de dados.
Ver arquivos: MAPPR002*.java
TREINAMENTO APX | 64
2
- CONEXÃO DE BIBLIOTECA --> BIBLIOTECA
- Para poder invocar uma biblioteca de outra biblioteca, você precisa seguir as
etapas a seguir. Tomaremos como exemplo uma biblioteca chamada UUAAR001 que
será invocada a partir de UUAAR002
- No pom.xml do invocador devemos importar a dependência da biblioteca que
contém a interface. O pom.xml será o de UUAAR002IMPL-0.0.0.
<dependência>
<groupId>com.bbva.uuaa</groupId>
<artifactId>UUAAR001</artifactId>
<versão>0.0.0</versão>
</dependência>
TREINAMENTO APX | 65
02
CONEXÃO DE BIBLIOTECA --> BIBLIOTECA
</Pacote de importação>
Observação : caso a variável osgi.version.manifest não esteja definida no pom, os
pacotes com.bbva.elara são definidos como versão 0.0, bem como os pacotes
com.bbva.uuaa.lib.r001.
02
CONEXÃO DE BIBLIOTECA --> BIBLIOTECA
- Você precisa modificar o seguinte arquivo que está no projeto da biblioteca de invocação:
(UUAAR002 em nosso exemplo):
TREINAMENTO APX | 66
/main/resources/META-INF/spring/UUAAR002-app-osgi.xml
ou, se não existir, o seguinte
/main/resources/META-INF/primavera/UUAAR002-osgi.xml
para incluir a linha que recupera o serviço da outra biblioteca, uuaar001 em nosso exemplo
<osgi:referência id="UUAAR001" nome-do-feijão="uuaaR001"
interface="com.bbva.uuaa.lib.r001.UUAAR001" />
Onde:
O id é o nome do feijão a ser criado no contexto da primavera.
O nome do bean é usado na pesquisa de serviço e deve corresponder à referência (ref) do
serviço que está sendo publicado. Este id uuaaR001 é o que foi indicado na primavera na
biblioteca invocada, e deve ser indicado por quem nos fornece a biblioteca.
XML Spring: <bean id="uuaaR001" classe=. . />
Interface a interface que estamos procurando. Tem que ser definido indicando o nome
completo, incluindo o pacote.
02
CONEXÃO DE BIBLIOTECA --> BIBLIOTECA
■
Na implementação da biblioteca UUAAR002, classe UUAAR002Impl.java,
devemos registrar uma variável de membro privado, do tipo da interface da
TREINAMENTO APX | 67
biblioteca a ser invocada (UUAAR001 em nosso exemplo), após importá-la.
privado UUAAR001 UUAAR001;
■ Na implementação da biblioteca devemos gerar um setter público para um
campo que deve ser chamado de UUAAR001 de acordo com o nosso exemplo,
que é o id que colocamos na tag osgi:reference do passo 3
public void setUUAAR001(UUAAR001 UUAAR001){
este. UUAAR001 = UUAAR001
}
02
CONEXÃO DE BIBLIOTECA --> BIBLIOTECA
TREINAMENTO APX | 68
</feijão>
- A partir desse momento podemos invocar os métodos de UUAAR001 a partir do
código da biblioteca UUAAR002.
TREINAMENTO APX | 69
Perguntas/Dúvidas