JSR-286 ainda fornece interfaces opcionais para controle do ciclo de vida que o Portlet pode implementar como EventPortlet, que permite ao Portlet reagir as acoes ou mudancas de estado oriundas da interacao do usuario com o portlet ou acoes originadas por outros portlets e a interface ResourceServingPortlet, utilizada para disponibilizar recursos do servidor no Portlet.Portlet Modes e Window StatesPara cada portlet existem dois itens de estado gerenciado, que sao o modo do portlet (portlet mode) e o estado da janela (window state). Cada portlet possui um portlet mode corrente que indica a funcao que o portlet esta realizando.Os modes (ou modos) definidos na especificacao sao VIEW, EDIT e HELP. Estes modos sao utilizados pelo metodo de renderizacao render(), conforme vimos na Tabela 1, para decidir qual metodo de visualizacao deve ser chamado. Os metodos de renderizacao chamados sao apresentados na Tabela 2. Metodo Descricao doView() Metodo chamado por render() quando o portlet esta em modo de visualizacao (VIEW). Deve conter a logica que apresenta a pagina de Visualizacao para o portlet. doEdit() Chamado por render() quando o portlet esta em modo de edicao (EDIT). doHelp() Chamado por render() quando o portlet esta em modo de ajuda (HELP) . Tabela 2. Metodos de renderizacao do Portlet ModeA classe PortletMode define constantes para estes portlet modes. A disponibilidade dos modos para o portlet pode ser restrito a roles (papeis) especificos de usuarios do portal. Por exemplo, um usuario anonimo pode acessar o portlet apenas nos modos VIEW e HELP, enquanto que a role EDIT pode ser utilizada somente por usuarios autenticados.Outro tipo de estado gerenciado, o estado da janela (window state), apresenta a quantidade de informacoes que sera disponibilizada para o portlet. A especificacao define tres tipos de estados para cada portlet, que sao: normal, maximizado e minimizado. A classe WindowState possui constantes para estes estados da janela.Para um maior entendimento, a Figura 1 apresenta estes conceitos de portlet mode e window state aplicados a um portlet.Figura 1. Anatomia de um portletOpcionalmente o desenvolvedor pode especificar tipos customizados de modo e estado de janela, alterando o arquivo portlet.xml com uso da tag custom-window-state para estados de janela e custom-portlet-mode para modos.JSF/Portlet BridgeComo parte do projeto OpenPortal da Sun, foi criado o projeto JSF/Portlet Bridge, que tem como objetivo fornecer uma biblioteca de integracao que permita que aplicacoes desenvolvidas com JSF possam ser executadas em um ambiente de Portlet.Para atender a especificacao de portlets, o JCP disponibilizou a JSR 301 para definir como um portlet 286 interage com os artefatos do JSF. A especificacao foi para votacao em Julho de 2006, mas somente em Janeiro de 2009 o draft da proposta final foi disponibilizada para o publico.Portlet Bridge e uma tecnologia utilizada por um portlet para fazer uma ponte (por isso o nome bridge) para um ambiente de execucao, onde diferentes abstracoes sao utilizadas para processar as interacoes com o usuario ou para renderizar a interface grafica.O Portlet Bridge age como um engine tradutor entre o ambiente de portal e o sistema destino, neste caso, uma aplicacao desenvolvida com o framework JSF. Ele ainda fornece