ROTEIRO 2
Exercício 1
- Crie um diretório chamado ProjetoAspecto para armazenar o seu projeto.
- Copie os arquivos do exercício (pacotes fachada,
contas, gui,
e util) num subdiretório src dentro do diretório ProjetoAspecto. Outra opção para baixar os arquivos.
- Crie um novo projeto AspectJ no diretório criado (vide Roteiro 1):
- Agora vamos criar um aspecto
- no menu File escolha a opção New -> Other..., selecione
Aspect e
em seguida clique em Next
- escolha o Source Folder (o mesmo do projeto)
- digite o nome do pacote (aspectos)
- e o nome do aspecto (Teste)
- Defina no aspecto um pointcut para
identificar todas as chamadas ao método creditar
de objetos do tipo Conta.
- Agora defina um advice para imprimir a mensagem "Vou
creditar" antes das chamadas ao método creditar
de objetos do tipo Conta.
- Salve o arquivo que se não tiver erros de compilação automaticamente gera a versão do sistema composta pelo aspecto.
Em seguida execute o programa e veja se o comportamento do mesmo foi
alterado como desejado
- Para gerar a versão original do programa, sem o efeito do aspecto,
clique com o botão direito do mouse sobre o arquivo do aspecto e escolha
Build path -> Exclude. Execute novamente o sistema e veja que o comportamento
que o aspecto havia adicionado roi removido.
- Para reincluir o aspecto no sistema clique com o botão direito do mouse sobre o arquivo do aspecto e escolha
Build path -> Include
- No menu Window escolha a opção Show view -> Other...
Em seguida na pasta Visualiser escolha as opções (segurando a tecla
Ctrl) Aspect Visualiser e Aspect Visualiser Menu. Estas
janelas mostram como os aspectos afetam as classes do projeto.
- na janela Aspect Visualiser Menu você observa os aspectos que
estão afetando o seu projeto e a cor que o representa
- na janela Aspect Menu você observa, através das cores de cada
aspecto, que aspectos afetam que classes. Quando esta janela estiver
ativa você pode selecionar uma classe ou pacote através do Package Explorer
para que seja mostrado que classes são afetadas.
- nas classes que forem afetadas você pode clicar duas vezes com o
mouse sobre a linha colorida para que o Eclipse mostra que método
é afetado pelo aspecto representado pela cor.
- Novamente no menu Window escolha a opção Show view -> Other...
Em seguida na pasta AspectJ escolha a opção Cross References. Nesta visão
é possível ver que pontos do programa os advices afetam e que advices afetam pontos do programa.
A visão também permite navegar entes aspectos que afetam e classes que são afetadas.
- Ainda com o projeto criado no primeiro roteiro crie outro aspecto (Teste2).
- defina um pointcut
para identificar todas as execuções do método creditar
de um objeto do tipo Conta expondo o objeto
do qual o método vai ser executado.
- defina um advice para imprimir o saldo da conta após a
execução do método creditar.
- Remova o aspecto Teste do Build path e teste o sistema novamente.
- o que deve acontecer caso ambos os aspectos forem compostos com o
sistema? Inclua o aspecto removido no Build path e faça o teste.