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.
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”.
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.
Depois clique no botão “Run”, observe no console a saída do aspecto como na figura abaixo:
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/