+ All Categories
Home > Technology > JBoss Portlet Bridge

JBoss Portlet Bridge

Date post: 05-Dec-2014
Category:
Upload: rafaelliu
View: 1,712 times
Download: 2 times
Share this document with a friend
Description:
Palestra do JBoss In Bossa 2011 Brasília, 08/10/2011
28
JBossInBossa 2011 - Brasilia JBoss Portlet Bridge A Ponte entre Portais e Aplicações Rafael Liu JBoss Consultant
Transcript
Page 1: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

JBoss Portlet BridgeA Ponte entre Portais e Aplicações

Rafael LiuJBoss Consultant

Page 2: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

O que são Portais?

• "[A portal] provides a secure unified access point, [...] and is designed to aggregate and personalize information through application-specific portlets" - Wikipedia

Page 3: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

O que são Portais?

• Aglomerador de conteúdo

• notícias, eventos, etc

• Hotsites e subsites

• campanhas, setores, etc

• Colaboração

• forum, chat, etc

Page 4: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

Page 5: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

Page 6: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

Page 7: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

Portais em Java

• Portlets

• JSR 168 - Portlets 1.0

• JSR 286 - Portlets 2.0

• Portlet Container

Page 8: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

GateIn

• Solução de portal Red Hat / eXo (JBoss EPP)

• Portável (WCI): JBoss, Tomcat, ..?..

• Padrões

• JSR 168 - Portlets 1.0

• JSR 286 - Portlets 2.0

• JSR 170 - Java Content Repository

• Open Social

Page 9: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

GateIn

• Provê nativamente

• Navegação, breadcrumbs, site maps, segurança

• Provê através de módulos

• Forum, enquetes, lista de contatos, calendário, agenda, web mail, FAQ, chat, perguntas e respostas, gerenciamento de conteúdo, versionamento, fluxo de publicação, auditoria, redes sociais, mashups, ...

Page 10: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

Especificação Portlets

public class SimplePortlet extends GenericPortlet {

@Override

protected void doView(RenderRequest req,

RenderResponse resp)

throws PortletException, IOException {

resp.getWriter().println("Hello world");

}

}

Page 11: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

Déjà vu??

Page 12: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

Especificação Servlet

public class SimpleServlet extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req,

HttpServletResponse resp)

throws ServletException, IOException {

resp.getWriter().println("Hello world");

}

}

Page 13: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

E tem JSP também!

public class SimplePortlet extends GenericPortlet {

@Override

protected void doView(RenderRequest req,

RenderResponse resp)

throws PortletException, IOException {

getPortletContext()

.getRequestDispatcher("/portlet.jsp")

.include(request, response);

}

}

Page 14: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

Usando JSP

<%@ taglib uri="http://java.sun.com/portlet"

prefix="portlet"%>

<form method="post" action="<portlet:actionURL/>">

Name: <input type="text" name="name" value="">

<div id="<portlet:namespace />_mydiv"/>

<input type="submit" name="submit" value="Say hello">

</form>

Page 15: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

Usando JSP?

<%@ taglib uri="http://java.sun.com/portlet"

prefix="portlet"%>

<form method="post" action="<portlet:actionURL/>">

Name: <input type="text" name="name" value="">

<div id="<portlet:namespace />_mydiv"/>

<input type="submit" name="submit" value="Say hello">

</form>

Page 16: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

E não podia faltar um XML..

Page 17: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

portlet.xml

<portlet-app>

<portlet>

<portlet-name>SimplePortlet</portlet-name>

<display-name>SimplePortlet</display-name>

<portlet-class>net.rafaelliu.net.SimplePortlet</portlet-class>

<supports>

<mime-type>text/html</mime-type>

<portlet-mode>VIEW</portlet-mode>

</supports>

<portlet-info>

<title>SimplePortlet</title>

</portlet-info>

</portlet>

</portlet-app>

Page 18: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

E agora?

Page 19: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

O que são Portlet Bridges?

• "The Portlet Bridge for JavaServer Faces is a technology that sits between a portlet container and the JSF runtime enabling JSF applications to be exposed and run as portlets" - MyFaces Portlet Bridge FAQ

• Faz adequações necessárias para transformar o ambiente provido pelo portal no ambiente esperado pelo JSF

Page 20: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

Por que utilizar?

• Diminuir a curva de aprendizado

• Tornar API Portlet mais transparente

• Facilitar a integração com sistemas legados JSF

Page 21: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

Diminuir a curva de aprendizado

• O desenvolvimento é feito todo em cima de JSF

• Frameworks

• Componentes

• Tooling

Page 22: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

Tornar API mais transparente

• Trata da criação de ID's com namespaces

• Trata da reescrita de URL's (referências e links)

• Encapsula a session (PORTLET_SCOPE e APPLICATION_SCOPE)

Page 23: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

Portlet Bridge VS IFrame

• Redimensionamento natural

• URLs no IFrame redirecionam para fora do portal

• O alvo do IFrame precisa ser acessível do browser

• Controle identidade visual (CSS) e JavaScript

Page 24: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

JBoss Portlet Bridge

• JSF / RichFaces / JBoss Seam

• GateIn e JBoss Portal

• Versões

• JBPB 1.x (JSR-301): JSF 1.2 para Portlet 1.0

• JBPB 2.x (JSR-329): JSF 1.2 para Portlet 2.0

• JBPB 3.x (JSR-?): JSF 2.0

• http://community.jboss.org/wiki/JBossPortletBridgeProjectLayout

Page 25: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

Demo!

Page 26: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

Inter-portlet Communication (IPC)

• Portlet 2.0

• Public Render Parameter

• Eventing

Page 27: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

Portlet Preferences

Object request = FacesContext.getCurrentInstance();

.getExternalContext()

.getRequest();

PortletRequest portletRequest = (PortletRequest)request;

PortletPreferences portletPreferences = portletRequest.getPreferences();

// gravando

portletPreferences.setValue("link", link);

portletPreferences.store();

// lendo

link = portletPreferences.getValue("link", "http://rafaelliu.net");

Page 28: JBoss Portlet Bridge

JBossInBossa 2011 - Brasilia

Dúvidas?

@rafaelliu http://jboss.org/portletbridge

http://rafaelliu.net http://jboss.org/gatein


Recommended