Criando um projeto em JME com aspectos

 

Olá a todos, como havia prometido iremos começar a estudar a Orientação a Aspectos mesclando Padrões e J2ME.

 

Iremos começar com um projeto simples e aumentaremos o número de classes e os  relacionamentos ao decorrer dos artigos. Primeiramente criamos um Midlet normal e depois iremos convertê-lo para um projeto orientado a aspectos.

 

Mãos a obra!

 

Criando o projeto

Iremos criar um projeto inicial, para isto já criei algumas classes bases e depois iremos adicionando outras conforme o desenvolvimento do projeto e a demanda durante a aplicação dos padrões.

 

Iremos inicialmente criar um novo projeto, para isto: Clique em File - New – Other – J2ME Midlet Suite – Next – Digite um nome para o projeto “Cidade” – Finish.

 

Adicione ao projeto os fontes deste artigo:

- Cidade.java

- Mensagem.java

- Pessoa.java

 

Após todos os fontes adicionados, vá em Run – Run... – clique usando o botão direito do mouse sobre Wireless Toolkit Emulator, clique em New – Dê o nome de “Cidade”. Em “Project” clique em “Browse” e selecione “Cidade”, depois clique em Run.

 

Configurando o Eclipse para o emulador utilizar o AspectJ

Para que o emulador possa interpretar as chamadas advindas dos aspectos, é necessário configurar um parâmetro às opções do emulador.

 

Selecione Run... – Wireless Toolkit Emulator – Cidade – aba Emulation, sob a opção “Extra Emulator parâmeters” digite a string da imagem abaixo.

 

rtcpjmeafig01.JPG

Atenção: O path pode variar de acordo com a instalação do AspectJ no seu micro.

 

Criando um aspecto simples

Inicialmente iremos converter nosso projeto para ser projeto Orientado a Aspectos.

 

Clique usando o botão direito do mouse sobre a raiz do Projeto “Cidade”, vá até AspectJ Tools – clique em “Convert to AspectJ Project”.

 

 

rtcpjmeafig02.JPG

 

Verifique se foi adicionada ao projeto ao projeto a biblioteca “ASPECTJRT_LIB”.

 

Iremos criar um aspecto simples para testar nosso projeto.

 

Vá em File – New – Aspect – dê o nome de “Aspecto” e clique em “Finish”.


Utilize o código fonte abaixo:

 

import javax.microedition.lcdui.Form;

import javax.microedition.lcdui.Graphics;

 

 

public aspect Aspecto {

     

      public pointcut pBoasVindas() : call(void Cidade.boasVindas());

     

      after() : pBoasVindas(){

     

            System.out.println("Aspecto funcionando");

           

      }

}

 

Se você reparar na aba Package, irá aparecer um “x” sobre o projeto, isto indica que existe algum erro ou o pacote não foi gerado.  

 

Caso não exista nenhum erro no fonte, clique usando o botão direito do mouse sobre a raiz do projeto “Cidade” - J2ME - clique em “Create Package”. Como na imagem abaixo, observe que o “x” sumiu, isto indica que sob “deployed” o arquivo Cidade.jar será criado.

 

rtcpjmeafig03.JPG


Depois clique no botão “Run”, observe no console a saída do aspecto como na figura abaixo:

 

rtcpjmeafig04.JPG

 

Este aspecto irá monitorar a chama da função “BoasVindas” da classe Cidade. Quando esta função for chamada o nosso aspecto será disparado e será impresso “Aspecto funcionando”.

 

[]’s e até a próxima!

 

 

Observações

Não tente colocar ou gerar o arquivo “.jar” no celular ou no Palm, pois a aplicação irá travar. Isto ocorre, pois a KVM nestes dispositivos ainda não tem suporte para Orientação à aspecto.

 

Livros

Irei indicar alguns livros interessantes são eles:

- AspectJ CookBook de Russ Miles, publicado pela editora O’Reilly

- Programação Orientada a aspectos em Java de Antônio Maria Pereira de Resende e Claudiney Calixto da Silva, publicado pela editora BrasPort.

- J2ME Game Programming de Martin J. Wells publicado por Premier Press.

 

Tenha instalado no seu micro

Eclipse - http://www.eclipse.org/

EclipseMe - http://eclipseme.org/

J2ME Wirelless Toolkit - http://java.sun.com/javame/index.jsp

AJDT - http://www.eclipse.org/ajdt/

AspectJ - http://www.eclipse.org/aspectj/