KGROUND-COLOR: #ffff00">Esse artigo faz parte da revista Java Magazine edição 51. Clique aqui para ler todos os artigos desta edição.

0pt">Portlets com JBoss Portal

Explorando conceitos de portlets e criando um portlet completo

 

Portais trazem uma infra-estrutura centralizada de serviços para aplicações web e corporativas, ainda que estes serviços estejam em diferentes servidores ou mesmo usem tecnologias distintas. Todos os elementos de um portal geralmente são reunidos em uma única visão, no estilo de páginas como java.net, globo.com etc. Dentro da tecnologia Java, é dado o nome de Portlet a cada um dos pequenos componentes ou peças exibidos nessas páginas. Neste artigo, vamos apresentar a construção e o uso de portlets de forma aplicada, tratando dos conceitos necessários à medida que desenvolvemos um exemplo de portlet que será hospedado no JBoss Portal.

 

JSRs e containers

Os Portlets são o resultado da JSR (Java Specification Request) 168, a Portlet Specification, que foi finalizada em outubro de 2003. Com quase cinco anos de existência, este é um padrão estabelecido, contando com muitas implementações, tanto open source como proprietárias. Com o passar dos anos e a evolução do mercado de portais, no entanto, foram sendo identificadas lacunas não supridas pela JSR-168. Alguns fornecedores começaram então a resolver essas deficiências por sua conta, levando à perda de portabilidade entre os Containers de Portlets. Isto motivou a criação, no início de 2006, da JSR-286 (Portlet Specification 2.0), que visa preencher tais lacunas. Embora esta JSR ainda esteja em draft, alguns recursos como Web Services for Remote Portlets e o suporte a Ajax previstos na especificação já estão presentes em algumas implementações de containers de portlets do mercado. Entre eles está o JBoss Portal.

 

Realizando o download do JBoss Portal

Utilizaremos a versão 2.6.1 do JBoss Portal, o release estável mais recente no momento de escrita. Vá até a página de download (labs.jboss.com/jbossportal/download) e escolha a opção JBoss “Portal+JBoss AS 4.2.1”. Este download inclui o container de portlets pré-configurado, juntamente com o servidor JBoss Application Server. A versão atual do JBoss Portal roda apenas sobre o JBoss AS, mas nas próximas versões está previsto que poderá ser executado em qualquer outro servidor de aplicações aderente à especificação Java EE.

O processo de instalação é similar ao de outras aplicações em Java: basta descompactar o arquivo ZIP em alguma pasta e tudo estará pronto. Para executar o JBoss Portal, vá até a pasta < jbportal>/bin e execute ./run.sh para Linux ou run.bat no caso do Windows. (Nos paths indicados neste artigo, < jbportal> representa a pasta onde você descompactou a distribuição do JBoss Portal.)

Após a inicialização, visite o endereço http://localhost:8080/portal. Se você vir uma página de boas vindas, isso significa que seu ambiente está pronto para fazermos o deploy de nossos portlets e configurá-los.

 

Estados e modos de visualização

No nível de programação, um portlet é um componente web criado em Java que processa requisições e devolve respostas. Essas respostas são chamadas de fragmentos e podem ser formatadas através de diversas linguagens de marcação, por exemplo HTML e WML. Cada portlet pode ter um contexto à parte, em que trata suas variáveis e outras informações de forma particular; tem também a capacidade de interagir com o contexto do container de portlets e, através deste, com outros portlets. A especificação de Portlets determina que um portlet pode estar em três estados:

• VIEW – Estado padrão, em que é apresentado o conteúdo do portlet.

• EDIT – Para edição de preferências/configurações do portlet. Alterações nessas configurações geralmente têm impacto sobre o que é mostrado no modo VIEW.

• HELP – Fornece uma visualização de ajuda para o usuário do portlet.

Há também três modos de visualização definidos, similares aos que temos em janelas de sistemas operacionais:

• NORMAL – Nesta visualização, o portlet compartilha o espaço com outros portlets, obedecendo sua posição e tamanho definidos.

• MINIMIZED – O portlet aparece minimizado,

na maioria das vezes sendo mostrada

apenas a sua barra de título .

• MAXIMIZED – O portlet é expandido como se fosse o único portlet da página, escondendo todos os outros.

Estes modos de visualização são indicados por ícones no topo dos espaços reservados para os portlets, reforçando a idéia de que funcionam como mini-aplicações.

 

Criando um projeto de portlets

Como exemplo, vamos criar um portlet que permite postar blogs no site de blogs WordPress (wordpress.org). O WordPress é criado em PHP, mas expõe um serviço baseado em XML-RPC para integração com outras aplicações. Nosso portlet vai se comunicar com esse serviço e a partir dele poderemos publicar qualquer post. Para construir o aplicativo, vamos deixar para sua escolha o IDE, e utilizaremos o Ant como ferramenta de build. O ZIP com o código do exemplo contém o arquivo build.xml. A estrutura do projeto, que chamamos de “wordpress-portlet”, será como na Figura 1. No build.xml, você deve alterar as informações da propriedade portal.deploy.dir para indicar o diretório de deploy do JBoss Portal no seu sistema (geralmente, < jbportal>\server\default\deploy).

 

Figura 1. Estrutura do projeto de exemplo

 

Feito isso, você poderá usar o comando ant para realizar todas as tarefas de compilação, empacotamento e deploy do exemplo.

 

Mais sobre a API

A classe javax.portlet.GenericPortlet é a que seus portlets por padrão irão estender. Ela implementa a interface javax.portlet.Portlet, que define alguns métodos importantes para gerência de ciclo de vida, interação dos portlets com o container e outras atividades. Veja alguns métodos comumente implementados em uma classe de potlet:

...

Quer ler esse conteúdo completo? Tenha acesso completo