SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
JBoss Portlet Bridge
        A Ponte entre Portais e Aplicações




        Rafael Liu
        JBoss Consultant


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




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

JBossInBossa 2011 - Brasilia
JBossInBossa 2011 - Brasilia
JBossInBossa 2011 - Brasilia
JBossInBossa 2011 - Brasilia
Portais em Java
        • Portlets
               • JSR 168 - Portlets 1.0
               • JSR 286 - Portlets 2.0
        • Portlet Container




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
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, ...


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");
          }
     }




JBossInBossa 2011 - Brasilia
Déjà vu??




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");
          }
     }




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);
          }
     }



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>




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>




JBossInBossa 2011 - Brasilia
E não podia faltar um XML..




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>



JBossInBossa 2011 - Brasilia
E agora?




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


JBossInBossa 2011 - Brasilia
Por que utilizar?

        • Diminuir a curva de aprendizado
        • Tornar API Portlet mais transparente
        • Facilitar a integração com sistemas legados
               JSF




JBossInBossa 2011 - Brasilia
Diminuir a curva de aprendizado
        • O desenvolvimento é feito todo em cima de
               JSF
               • Frameworks
               • Componentes
               • Tooling



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)




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

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/JBossPortletBridgePr
                   ojectLayout
JBossInBossa 2011 - Brasilia
Demo!




JBossInBossa 2011 - Brasilia
Inter-portlet Communication (IPC)
         • Portlet 2.0
               • Public Render Parameter
               • Eventing




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");




JBossInBossa 2011 - Brasilia
Dúvidas?


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




JBossInBossa 2011 - Brasilia

Mais conteúdo relacionado

Mais procurados (9)

Apresentação JSF
Apresentação JSFApresentação JSF
Apresentação JSF
 
JavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoJavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em Desenvolvimento
 
Visão Geral de EJB 3.0
Visão Geral de EJB 3.0Visão Geral de EJB 3.0
Visão Geral de EJB 3.0
 
Serra StarTec 2013 - Java EE
Serra StarTec 2013 - Java EESerra StarTec 2013 - Java EE
Serra StarTec 2013 - Java EE
 
EJB
EJBEJB
EJB
 
Netbeans slides
Netbeans slidesNetbeans slides
Netbeans slides
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer Faces
 
Introducao EJB 3
Introducao EJB 3Introducao EJB 3
Introducao EJB 3
 
Introdução ao JavaServer Faces
Introdução ao JavaServer FacesIntrodução ao JavaServer Faces
Introdução ao JavaServer Faces
 

Destaque

Business Rules com Drools
Business Rules com DroolsBusiness Rules com Drools
Business Rules com Droolsrafaelliu
 
Make it test-driven with CDI!
Make it test-driven with CDI!Make it test-driven with CDI!
Make it test-driven with CDI!rafaelliu
 
Extending JBoss EPP and Site Publisher your way
Extending JBoss EPP and Site Publisher your wayExtending JBoss EPP and Site Publisher your way
Extending JBoss EPP and Site Publisher your wayrafaelliu
 
About the PEER - Dare to be wise! project
About the PEER - Dare to be wise! projectAbout the PEER - Dare to be wise! project
About the PEER - Dare to be wise! projectMaria Schwarz-Woelzl
 
JUnit 5 - from Lambda to Alpha and beyond
JUnit 5 - from Lambda to Alpha and beyondJUnit 5 - from Lambda to Alpha and beyond
JUnit 5 - from Lambda to Alpha and beyondSam Brannen
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome EconomyHelge Tennø
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerLuminary Labs
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
 

Destaque (8)

Business Rules com Drools
Business Rules com DroolsBusiness Rules com Drools
Business Rules com Drools
 
Make it test-driven with CDI!
Make it test-driven with CDI!Make it test-driven with CDI!
Make it test-driven with CDI!
 
Extending JBoss EPP and Site Publisher your way
Extending JBoss EPP and Site Publisher your wayExtending JBoss EPP and Site Publisher your way
Extending JBoss EPP and Site Publisher your way
 
About the PEER - Dare to be wise! project
About the PEER - Dare to be wise! projectAbout the PEER - Dare to be wise! project
About the PEER - Dare to be wise! project
 
JUnit 5 - from Lambda to Alpha and beyond
JUnit 5 - from Lambda to Alpha and beyondJUnit 5 - from Lambda to Alpha and beyond
JUnit 5 - from Lambda to Alpha and beyond
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome Economy
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 

Semelhante a JBoss Portlet Bridge

Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2Dr. Spock
 
Java EE 6 e JBoss 6.0
Java EE 6 e JBoss 6.0Java EE 6 e JBoss 6.0
Java EE 6 e JBoss 6.0Edgar Silva
 
GUJavaSC - Alternativas ao Desenvolvimento do Back-end Mobile com Java EE
GUJavaSC - Alternativas ao Desenvolvimento do Back-end Mobile com Java EEGUJavaSC - Alternativas ao Desenvolvimento do Back-end Mobile com Java EE
GUJavaSC - Alternativas ao Desenvolvimento do Back-end Mobile com Java EERodrigo Cândido da Silva
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebElenilson Vieira
 
Minicurso Java Server Faces
Minicurso Java Server FacesMinicurso Java Server Faces
Minicurso Java Server FacesJoão Longo
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysDr. Spock
 
Apache Wicket - Desenvolvimento WEB orientado a componentes
Apache Wicket - Desenvolvimento WEB orientado a componentesApache Wicket - Desenvolvimento WEB orientado a componentes
Apache Wicket - Desenvolvimento WEB orientado a componentesCI&T
 
Inovações Na Plataforma Java
Inovações Na Plataforma JavaInovações Na Plataforma Java
Inovações Na Plataforma JavaFilipe Portes
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaEduardo Bregaida
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.Rogério Napoleão Jr.
 
Maratona JBoss 2010 - JBoss-ESB
Maratona JBoss 2010 - JBoss-ESBMaratona JBoss 2010 - JBoss-ESB
Maratona JBoss 2010 - JBoss-ESBDextra
 
Novidades do JAX-RS 2.0
Novidades do JAX-RS 2.0Novidades do JAX-RS 2.0
Novidades do JAX-RS 2.0jesuinoPower
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0Paulo Neto
 
JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeJavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeRafael Ponte
 

Semelhante a JBoss Portlet Bridge (20)

Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2
 
Webcast portlets-jsf
Webcast portlets-jsfWebcast portlets-jsf
Webcast portlets-jsf
 
JSF & REST
JSF & RESTJSF & REST
JSF & REST
 
Jee6
Jee6Jee6
Jee6
 
Java EE 6 e JBoss 6.0
Java EE 6 e JBoss 6.0Java EE 6 e JBoss 6.0
Java EE 6 e JBoss 6.0
 
MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)
 
GUJavaSC - Alternativas ao Desenvolvimento do Back-end Mobile com Java EE
GUJavaSC - Alternativas ao Desenvolvimento do Back-end Mobile com Java EEGUJavaSC - Alternativas ao Desenvolvimento do Back-end Mobile com Java EE
GUJavaSC - Alternativas ao Desenvolvimento do Back-end Mobile com Java EE
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
 
Minicurso Java Server Faces
Minicurso Java Server FacesMinicurso Java Server Faces
Minicurso Java Server Faces
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
Apache Wicket - Desenvolvimento WEB orientado a componentes
Apache Wicket - Desenvolvimento WEB orientado a componentesApache Wicket - Desenvolvimento WEB orientado a componentes
Apache Wicket - Desenvolvimento WEB orientado a componentes
 
Inovações Na Plataforma Java
Inovações Na Plataforma JavaInovações Na Plataforma Java
Inovações Na Plataforma Java
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.java
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.
 
Maratona JBoss 2010 - JBoss-ESB
Maratona JBoss 2010 - JBoss-ESBMaratona JBoss 2010 - JBoss-ESB
Maratona JBoss 2010 - JBoss-ESB
 
Novidades do JAX-RS 2.0
Novidades do JAX-RS 2.0Novidades do JAX-RS 2.0
Novidades do JAX-RS 2.0
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0
 
JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeJavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividade
 
JBoss5 @ FISL
JBoss5 @ FISLJBoss5 @ FISL
JBoss5 @ FISL
 

JBoss Portlet Bridge

  • 1. JBoss Portlet Bridge A Ponte entre Portais e Aplicações Rafael Liu JBoss Consultant JBossInBossa 2011 - Brasilia
  • 2. 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 JBossInBossa 2011 - Brasilia
  • 3. O que são Portais? • Aglomerador de conteúdo • notícias, eventos, etc • Hotsites e subsites • campanhas, setores, etc • Colaboração • forum, chat, etc JBossInBossa 2011 - Brasilia
  • 7. Portais em Java • Portlets • JSR 168 - Portlets 1.0 • JSR 286 - Portlets 2.0 • Portlet Container JBossInBossa 2011 - Brasilia
  • 8. 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 JBossInBossa 2011 - Brasilia
  • 9. 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, ... JBossInBossa 2011 - Brasilia
  • 10. Especificação Portlets public class SimplePortlet extends GenericPortlet { @Override protected void doView(RenderRequest req, RenderResponse resp) throws PortletException, IOException { resp.getWriter().println("Hello world"); } } JBossInBossa 2011 - Brasilia
  • 12. Especificação Servlet public class SimpleServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.getWriter().println("Hello world"); } } JBossInBossa 2011 - Brasilia
  • 13. 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); } } JBossInBossa 2011 - Brasilia
  • 14. 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> JBossInBossa 2011 - Brasilia
  • 15. 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> JBossInBossa 2011 - Brasilia
  • 16. E não podia faltar um XML.. JBossInBossa 2011 - Brasilia
  • 17. 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> JBossInBossa 2011 - Brasilia
  • 19. 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 JBossInBossa 2011 - Brasilia
  • 20. Por que utilizar? • Diminuir a curva de aprendizado • Tornar API Portlet mais transparente • Facilitar a integração com sistemas legados JSF JBossInBossa 2011 - Brasilia
  • 21. Diminuir a curva de aprendizado • O desenvolvimento é feito todo em cima de JSF • Frameworks • Componentes • Tooling JBossInBossa 2011 - Brasilia
  • 22. 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) JBossInBossa 2011 - Brasilia
  • 23. 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 JBossInBossa 2011 - Brasilia
  • 24. 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/JBossPortletBridgePr ojectLayout JBossInBossa 2011 - Brasilia
  • 26. Inter-portlet Communication (IPC) • Portlet 2.0 • Public Render Parameter • Eventing JBossInBossa 2011 - Brasilia
  • 27. 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"); JBossInBossa 2011 - Brasilia
  • 28. Dúvidas? @rafaelliu http://jboss.org/portletbridge http://rafaelliu.net http://jboss.org/gatein JBossInBossa 2011 - Brasilia