SlideShare uma empresa Scribd logo
customizando o


                                                                             by


                           http://www.flickr.com/photos/dejay181/461011654/        1
Monday, December 7, 2009
2
Monday, December 7, 2009
só lembrando

                     a moda é customizar
                           para deixar o portal com a sua cara




                                                                 3
Monday, December 7, 2009
4
Monday, December 7, 2009
4
Monday, December 7, 2009
Interessado?
                             o/




                  sea@seatecnologia.com.br
                                             5
Monday, December 7, 2009
Criar páginas, configurar layouts, distribuir
                       portlets é apenas a ponta do iceberg...
                                                                     6
Monday, December 7, 2009
Há inúmeras outras possibilidades para
                                 customização do Liferay.




                              http://www.flickr.com/photos/stephenpoff/2761284719/in/set-72157594345940394/   7
Monday, December 7, 2009
O Liferay possui vários níveis de customização.



                                               Customização
                                                   Liferay




                                                  Extension    Código
                           Plugins
                                                 Environment   Fonte




    Portlets               Temas     Layouts


                                                                        8
Monday, December 7, 2009
O Liferay possui vários níveis de customização.



        A primeira                             Customização
  estratégía é através de
                                                   Liferay
          plugins




                                                  Extension                   Código
                           Plugins
                                                 Environment                  Fonte




                                                  Plugins são componentes WAR, facilmente
    Portlets               Temas     Layouts             organizáveis em repositórios.

                                                                                            8
Monday, December 7, 2009
O Liferay possui vários níveis de customização.



                               Quando não          Customização
                           resolver com plugins,
                                                       Liferay
                                vá de EXT




                                                      Extension                   Código
                           Plugins
                                                     Environment                  Fonte




                                                       O ambiente de extensão é mais poderoso
    Portlets                Temas        Layouts          que plugins, porém, mais instrusivo.

                                                                                                 8
Monday, December 7, 2009
O Liferay possui vários níveis de customização.



                                                                          Em último caso,
                                               Customização           modifique o código fonte
                                                   Liferay                   original




                                                  Extension                      Código
                           Plugins
                                                 Environment                     Fonte




                                                     Modificações no código fonte, apesar de
    Portlets               Temas     Layouts          não imporem limites na customização,
                                                    prejudicam a evolução para novas versões.
                                                                                                8
Monday, December 7, 2009
Focaremos na customização por plugins.




                                               Customização
                                                   Liferay




                                                  Extension      Código
                           Plugins
                                                 Environment     Fonte




    Portlets               Temas     Layouts

                                                                          9
Monday, December 7, 2009
Criação de Plugins
                                  temas, layouts e portlets
                           http://www.flickr.com/photos/stephenpoff/2874657376/in/set-72157594345940394/   10
Monday, December 7, 2009
pré-reqs




                           Para iniciar o desenvolvimento de plugins,
                             alguns pré-requisitos são necessários      11
Monday, December 7, 2009
pré-reqs




                           Para iniciar o desenvolvimento de plugins,
                             alguns pré-requisitos são necessários      11
Monday, December 7, 2009
pré-reqs




                           Para iniciar o desenvolvimento de plugins,
                             alguns pré-requisitos são necessários      11
Monday, December 7, 2009
Na página de download
                           do Liferay, existe um link
                               ‘Additional Files’




                                                        12
Monday, December 7, 2009
Baixe o
                           Liferay Plugins SDK




                             Text                13
Monday, December 7, 2009
Baixe o
                           Liferay Plugins SDK




                             Text                13
Monday, December 7, 2009
Descompacte o Plugins
                            SDK e veja a seguinte
                           estrutura de diretórios.




                                                      14
Monday, December 7, 2009
Crie o arquivo
                           build.${usuario}.properties...

                            onde ${usuario} é o nome do usuário
                                    logado na máquina




                                                                  15
Monday, December 7, 2009
Configure no Plugin SDK o
            caminho do servidor Tomcat
            sobre o qual seu Liferay está
                 sendo executado.



                                            16
Monday, December 7, 2009
Portlets              primeiros passos...



Monday, December 7, 2009
Acesse a pasta ‘portlets’
        do Plugin SDK...


  /liferay/liferay-plugins-sdk-5.2.3/portlets $ ./create.sh hello-liferay "Hello Liferay"
  Buildfile: build.xml

  create:
     [unzip] Expanding: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-sdk-5.2.3/
  portlets/portlet.zip into /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-
  sdk-5.2.3/portlets/hello-liferay-portlet
     [mkdir] Created dir: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-
  sdk-5.2.3/portlets/hello-liferay-portlet/docroot/WEB-INF/tld
      [copy] Copying 6 files to /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-
  sdk-5.2.3/portlets/hello-liferay-portlet/docroot/WEB-INF/tld

  BUILD SUCCESSFUL
  Total time: 6 seconds




                                                                                              18
Monday, December 7, 2009
...e utilize o script para
                              criação de um novo
                                    portlet...


  /liferay/liferay-plugins-sdk-5.2.3/portlets $ ./create.sh hello-liferay "Hello Liferay"
  Buildfile: build.xml

  create:
     [unzip] Expanding: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-sdk-5.2.3/
  portlets/portlet.zip into /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-
  sdk-5.2.3/portlets/hello-liferay-portlet
     [mkdir] Created dir: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-
  sdk-5.2.3/portlets/hello-liferay-portlet/docroot/WEB-INF/tld
      [copy] Copying 6 files to /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-
  sdk-5.2.3/portlets/hello-liferay-portlet/docroot/WEB-INF/tld

  BUILD SUCCESSFUL
  Total time: 6 seconds




                                                                                              18
Monday, December 7, 2009
...informando o nome do
                                     projeto...


  /liferay/liferay-plugins-sdk-5.2.3/portlets $ ./create.sh hello-liferay "Hello Liferay"
  Buildfile: build.xml

  create:
     [unzip] Expanding: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-sdk-5.2.3/
  portlets/portlet.zip into /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-
  sdk-5.2.3/portlets/hello-liferay-portlet
     [mkdir] Created dir: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-
  sdk-5.2.3/portlets/hello-liferay-portlet/docroot/WEB-INF/tld
      [copy] Copying 6 files to /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-
  sdk-5.2.3/portlets/hello-liferay-portlet/docroot/WEB-INF/tld

  BUILD SUCCESSFUL
  Total time: 6 seconds




                                                                                              18
Monday, December 7, 2009
...e o nome do portlet.



  /liferay/liferay-plugins-sdk-5.2.3/portlets $ ./create.sh hello-liferay "Hello Liferay"
  Buildfile: build.xml

  create:
     [unzip] Expanding: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-sdk-5.2.3/
  portlets/portlet.zip into /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-
  sdk-5.2.3/portlets/hello-liferay-portlet
     [mkdir] Created dir: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-
  sdk-5.2.3/portlets/hello-liferay-portlet/docroot/WEB-INF/tld
      [copy] Copying 6 files to /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-
  sdk-5.2.3/portlets/hello-liferay-portlet/docroot/WEB-INF/tld

  BUILD SUCCESSFUL
  Total time: 6 seconds




                                                                                              18
Monday, December 7, 2009
Analise a estrutura de
                             diretórios criada.




                                                    19
Monday, December 7, 2009
/liferay/liferay-plugins-sdk-5.2.3/portlets/hello-liferay-portlet $ ant   deploy
 Buildfile: build.xml

 compile:

 merge:                                                             Faça o deploy automático
   [javac] Compiling 1 source file to /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-
                                                                        do portlet no Liferay
 sdk-5.2.3/portlets/hello-liferay-portlet/docroot/WEB-INF/classes
                                                                             configurado no arquivo
 merge:                                                                     build.${usuario}.properties

 war:
   [mkdir] Created dir: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-sdk-5.2.3/dist

 clean-portal-dependencies:
     [zip] Building zip: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-sdk-5.2.3/dist/
 hello-liferay-portlet-5.2.3.1.war

 deploy:
    [copy] Copying 1 file to /liferay/liferay-portal-5.2.3/deploy

 BUILD SUCCESSFUL
 Total time: 24 seconds

                                                                                                          20
Monday, December 7, 2009
13:38:16,945 INFO [AutoDeployDir:183] Processing hello-liferay-portlet-5.2.3.1.war
13:38:19,275 INFO [PortletAutoDeployListener:77] Copying portlets for /Users/alegomes/sea/edu/
liferay/apps/liferay-portal-5.2.3/deploy/hello-liferay-portlet-5.2.3.1.war
(...)
13:39:03,603 INFO [PortletAutoDeployListener:87] Portlets for /Users/alegomes/sea/edu/liferay/apps/
liferay-portal-5.2.3/deploy/hello-liferay-portlet-5.2.3.1.war copied successfully. Deployment will start in a
few seconds.

13:40:40,919 INFO [PortletHotDeployListener:227] Registering portlets for hello-liferay-portlet
13:40:41,587 INFO [PortletHotDeployListener:346] 1 portlet for hello-liferay-portlet is
available for use



                                                                      Acompanhe o
                                                                       resultado do
                                                                     deploy no log do
                                                                     servidor Liferay.
                                                                                                           21
Monday, December 7, 2009
Verifique a presença
                              do portlet no
                           diretório de deploy
                                do Liferay




                             Portlet
                           deployado!

                                                 22
Monday, December 7, 2009
Nosso
                           portlet!



                              Acesse a interface web
                               do portal e verifique a
                              presença do portlet na
                                  lista de portlets
                              disponívéis no servidor.
                                                         23
Monday, December 7, 2009
Nosso
                           portlet!




                                      24
Monday, December 7, 2009
/liferay/liferay-plugins-sdk-5.2.3/portlets/hello-liferay-portlet $ ant   setup-eclipse
 Buildfile: build.xml

 setup-eclipse:
    [java] Loading jar:file:/Volumes/Data/Documents/sea/edu/liferay/apps/liferay-portal-5.2.3/
 tomcat-5.5.27/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/system.properties
    [java] Loading jar:file:/Volumes/Data/Documents/sea/edu/liferay/apps/liferay-portal-5.2.3/
 tomcat-5.5.27/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/portal.properties
    [java] Loading jar:file:/Volumes/Data/Documents/sea/edu/liferay/apps/liferay-portal-5.2.3/
 tomcat-5.5.27/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/com/liferay/portal/tools/
 dependencies/portal-tools.properties
    [java] Loading jar:file:/Volumes/Data/Documents/sea/edu/liferay/apps/liferay-portal-5.2.3/
 tomcat-5.5.27/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/captcha.properties
    [java] 14:07:11,904 INFO [PortalImpl:252] Portal lib directory /Volumes/Data/Documents/
 sea/edu/liferay/apps/liferay-portal-5.2.3/tomcat-5.5.27/webapps/ROOT/WEB-INF/lib/
    [java] Updating /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-sdk-5.2.3/
 portlets/hello-liferay-portlet/.project
    [java] Updating /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-sdk-5.2.3/
 portlets/hello-liferay-portlet/.classpath
                                               Crie um projeto
 BUILD SUCCESSFUL                             Eclipse a partir do
 Total time: 24 seconds                      código gerado pelo
                                                 Plugins SDK
                                                                                           25
Monday, December 7, 2009
Importe o projeto
                             do portlet no
                                Eclipse




                                               26
Monday, December 7, 2009
Todo portlet criado
                pelo SDK busca as
                  libs do projeto
                       ‘portal’




                                     27
Monday, December 7, 2009
Baixar código
                             fonte do
                              Liferay




                                           28
Monday, December 7, 2009
28
Monday, December 7, 2009
Descompacte o
                           código fonte do
                               Liferay
                                             29
Monday, December 7, 2009
Confira a estrutura
        de diretórios
           criada.




30
Monday, December 7, 2009
Crie um novo
   projeto no Eclipse
     para o código
    fonte do Liferay

                           31
Monday, December 7, 2009
Ainda existem
            erros




                           32
Monday, December 7, 2009
33
Monday, December 7, 2009
Remover libs
                           problemáticas




                                           34
Monday, December 7, 2009
35
Monday, December 7, 2009
Adicionar
                           diretório de
                              classes




                                          35
Monday, December 7, 2009
Adicionar
                           diretório de
                              classes




                                          35
Monday, December 7, 2009
Diretório de
          classes
      adicionado às
     libs do projeto
        de portlet




                           36
Monday, December 7, 2009
Acabaram os
                            problemas.




                                         37
Monday, December 7, 2009
Código Java
           do portlet



                           38
Monday, December 7, 2009
Código JSP
           do portlet

                           39
Monday, December 7, 2009
Não se iluda
                                 achando que já sabe tudo




http://www.flickr.com/photos/purplemattfish/3404482191/       40
Monday, December 7, 2009
Invista alguns
             tomates* para
            dominar a teoria
              dos portlets
                           * The Pomodoro Technique




 http://www.flickr.com/photos/stephenpoff/158536767/in/set-72157594345940394/   41
Monday, December 7, 2009
e por falar em tomates...




                                                     Suponha que
                                                    portlets sejam


                                                    tomates
http://www.flickr.com/photos/darwinbell/387755335/                               42
Monday, December 7, 2009
Tomates são guardados
             em caixas.
http://www.flickr.com/photos/chrismar/3631784233/   43
Monday, December 7, 2009
Tomates têm um
                                                         ciclo de vida
                                                          muito bem
                                                           definido.




          eles
        nascem...
http://www.flickr.com/photos/urbanislands/3876172828/                 44
Monday, December 7, 2009
...crescem...


http://www.flickr.com/photos/deborahnaomi/1820652016/                   45
Monday, December 7, 2009
...reproduzem-se...


                           http://www.flickr.com/photos/jp_math54/3819627661/   46
Monday, December 7, 2009
...são colhidos...

http://www.flickr.com/photos/the_ewan/2962762666/   47
Monday, December 7, 2009
...comidos...
                           http://www.flickr.com/photos/gezellig-girl/3784584015/   48
Monday, December 7, 2009
...ou morrem.



http://www.flickr.com/photos/another007/2885665653/   49
Monday, December 7, 2009
Entenda a lógica da programação orientada a
                      componentes do mundo Java




http://www.flickr.com/photos/jp_math54/3819628579/   50
Monday, December 7, 2009
http://www.flickr.com/photos/19684903@N00/346425180/   51
Monday, December 7, 2009
componente é uma peça
             independente de software




http://www.flickr.com/photos/19684903@N00/346425180/   51
Monday, December 7, 2009
componente é uma peça
             independente de software


                                                      todo componente tem um
                                                      ciclo de vida bem definido




http://www.flickr.com/photos/19684903@N00/346425180/                               51
Monday, December 7, 2009
componente é uma peça
             independente de software


                                                      todo componente tem um
                                                      ciclo de vida bem definido

   o ciclo de vida de um
 componente é gerenciado
     por um container



http://www.flickr.com/photos/19684903@N00/346425180/                               51
Monday, December 7, 2009
componente é uma peça
             independente de software


                                                      todo componente tem um
                                                      ciclo de vida bem definido

   o ciclo de vida de um
 componente é gerenciado
     por um container
                                                         a cada transição entre
                                                         fases do ciclo de vida,
                                                             um método do
http://www.flickr.com/photos/19684903@N00/346425180/
                                                        componente é chamado       51
Monday, December 7, 2009
http://www.flickr.com/photos/19684903@N00/346425180/   52
Monday, December 7, 2009
componente são empacotados




http://www.flickr.com/photos/19684903@N00/346425180/   52
Monday, December 7, 2009
componente são empacotados


                                  cada tipo de componente possui seu
                                         próprio tipo de pacote
                                                      WAR, JAR, EAR, SAR, RAR...




http://www.flickr.com/photos/19684903@N00/346425180/                                52
Monday, December 7, 2009
componente são empacotados


                                  cada tipo de componente possui seu
                                         próprio tipo de pacote
                                                      WAR, JAR, EAR, SAR, RAR...



  num pacote de componentes há
classes + recursos + descritor




http://www.flickr.com/photos/19684903@N00/346425180/                                52
Monday, December 7, 2009
componente são empacotados


                                  cada tipo de componente possui seu
                                         próprio tipo de pacote
                                                        WAR, JAR, EAR, SAR, RAR...



  num pacote de componentes há
classes + recursos + descritor

                                                      cada tipo de pacote possui
                                                        seu próprio descritor
                                                       web.xml, ejb-jar.xml, enterprise.xml, -service.xml
http://www.flickr.com/photos/19684903@N00/346425180/                                                         52
Monday, December 7, 2009
Para fazer uma Applet, uma Servlet ou um Midlet...
                                                                 53
Monday, December 7, 2009
...precisamos estender classes da respectiva API.
                                                                   54
Monday, December 7, 2009
Geralmente, essas classes declaram métodos abstratos (ou não)...
                                                              55
Monday, December 7, 2009
...que precisam ser sobrescritos.
                                                               56
Monday, December 7, 2009
Mas, pra quê serve essa
             sobrescrita?

                                 57
Monday, December 7, 2009
Para sabermos quando o componente mudou de estado
                                                        58
Monday, December 7, 2009
O container, responsável pelo ciclo de vida dos
componentes, notifica-os por meio de métodos de callback
     sempre que houver uma transição de estado.
                                                      59
Monday, December 7, 2009
No fundo, é tudo a mesma coisa.
                                                             60
Monday, December 7, 2009
Inclusive
      portlets



                           61
Monday, December 7, 2009
Inclusive
      portlets
                            Invocado pelo container
                           quando alguma submissão
                               de dados é feita ao
                                  componente.




                                                      61
Monday, December 7, 2009
Inclusive
      portlets


                Invocado pelo container quando
                há a necessidade de reconstruir
                 a visualização do componente
                                                  61
Monday, December 7, 2009
62
Monday, December 7, 2009
Dessa forma,
temos...
                           63
Monday, December 7, 2009
portlet
                                                       componente de software que gera
                                                             fragmentos HTML
                                                                em um portal
   http://www.flickr.com/photos/spisharam/2742433355/                                     64
Monday, December 7, 2009
portlet container
                             ambiente gerenciador de
                           portlets e seus ciclos de vida



                                http://www.flickr.com/photos/fensterbme/241478156/   65
Monday, December 7, 2009
Portlets
   geram fragmentos de
          HTML

                           portlets são agrupados
                                 em pacotes
                                 WAR
                                             pacotes WAR são deployados em
                                              Portlet Containers             66
Monday, December 7, 2009
um pacote WAR de portlets contém...




                                   my-portlet.war


Classes + Recursos + Descritor
                                                                 67
Monday, December 7, 2009
Descritores podem ser...

                                Padrões
                                 web.xml
                                portlet.xml



           my-portlet.war   Proprietários
                            liferay-portlet.xml
                            liferay-display.xml
                                                       68
Monday, December 7, 2009
O mais importante é se lembrar que
portlets ≠ servlets


                                 69
Monday, December 7, 2009
Portlets têm

                           modos
                           definem a função do portlet no instante


Monday, December 7, 2009
View


                               Edit




Monday, December 7, 2009
                           ?   Help
                                      71
Liferay
                                          Extension

                           configuration
                              mode

                                                      72
Monday, December 7, 2009
Liferay
                                           Extension

                           look and feel
                              mode

                                                       73
Monday, December 7, 2009
Portlets têm

               estados
                     definem o tamanho da tela que estão ocupando


Monday, December 7, 2009
normal


                                    75
Monday, December 7, 2009
maximizado


                                        76
Monday, December 7, 2009
minimizado




                                        77
Monday, December 7, 2009
Portlet 2.0
                                   Eventos
                                    AJAX
                                    Filtros
                                     IPC
                           http://jcp.org/en/jsr/detail?id=286   78
Monday, December 7, 2009
Interessado?
                             o/




                  sea@seatecnologia.com.br
                                             79
Monday, December 7, 2009
Q&A
Monday, December 7, 2009

Mais conteúdo relacionado

PPTX
Apresentacao + Demo Brazos
PDF
teste documentos
PDF
Novidades do Liferay Portal 6.2
PDF
2. Liferay Overview
PDF
Liferay Portal 6.2
PDF
O curioso caso de Náutilus Button
PDF
Misc Monitoring Tools
PDF
Agilidade no Governo
Apresentacao + Demo Brazos
teste documentos
Novidades do Liferay Portal 6.2
2. Liferay Overview
Liferay Portal 6.2
O curioso caso de Náutilus Button
Misc Monitoring Tools
Agilidade no Governo

Destaque (8)

PDF
Roadshow Liferay no Brasil 2010
PDF
Loomio how to Series - Creating a new Group of People
PDF
Sem tesão não há solução
PDF
Loomio how to Series - Working on a Discussion
PPTX
Liferay 6.2 theme premium
PDF
Gerentes em Crise existencial - Existimos no Universo Ágil?
PDF
Java Profiling Tools
PDF
4. Liferay JSP Portlets
Roadshow Liferay no Brasil 2010
Loomio how to Series - Creating a new Group of People
Sem tesão não há solução
Loomio how to Series - Working on a Discussion
Liferay 6.2 theme premium
Gerentes em Crise existencial - Existimos no Universo Ágil?
Java Profiling Tools
4. Liferay JSP Portlets
Anúncio

Mais de SEA Tecnologia (20)

PDF
Loomio how to Series - Creating a new Discussion
PDF
Contratos de desenvolvimento de software para governo blue pill or red pill?
PDF
KEY
Os benefícios e desafios da participação pública digital
KEY
A escola do século XXI deve ser ágil, enxuta e empreendedora.
PDF
Lean Startup
PDF
Open Data
PDF
Open data, scraping e thacks com Software Livre
PDF
Agilidade dos projetos à empresa, uma história de Intracontágio
ODP
Roadshow Brasília Novas funcionalidades Liferay 6
PDF
Empreendimentos em Rede
PDF
PDF
Pra você, desenvolver software é atividade intelectual?
KEY
Jopr Plugin Development
KEY
JMX Management Tools
KEY
Hotspot tools
KEY
Unix Monitoring Tools
KEY
Benchmarking Tools
KEY
Arsenal de ferramentas para performance tuning
KEY
A arte do tuning
Loomio how to Series - Creating a new Discussion
Contratos de desenvolvimento de software para governo blue pill or red pill?
Os benefícios e desafios da participação pública digital
A escola do século XXI deve ser ágil, enxuta e empreendedora.
Lean Startup
Open Data
Open data, scraping e thacks com Software Livre
Agilidade dos projetos à empresa, uma história de Intracontágio
Roadshow Brasília Novas funcionalidades Liferay 6
Empreendimentos em Rede
Pra você, desenvolver software é atividade intelectual?
Jopr Plugin Development
JMX Management Tools
Hotspot tools
Unix Monitoring Tools
Benchmarking Tools
Arsenal de ferramentas para performance tuning
A arte do tuning
Anúncio

Último (8)

PPTX
Mecânico de Manutenção de Equipamentos.pptx
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Mecânico de Manutenção de Equipamentos.pptx
Arquitetura de computadores - Memórias Secundárias
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Viasol Energia Solar -Soluções para geração e economia de energia
Manejo integrado de pragas na cultura do algodão
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Termos utilizados na designação de relação entre pessoa e uma obra.pdf

3. Liferay Customization

  • 1. customizando o by http://www.flickr.com/photos/dejay181/461011654/ 1 Monday, December 7, 2009
  • 3. só lembrando a moda é customizar para deixar o portal com a sua cara 3 Monday, December 7, 2009
  • 6. Interessado? o/ sea@seatecnologia.com.br 5 Monday, December 7, 2009
  • 7. Criar páginas, configurar layouts, distribuir portlets é apenas a ponta do iceberg... 6 Monday, December 7, 2009
  • 8. Há inúmeras outras possibilidades para customização do Liferay. http://www.flickr.com/photos/stephenpoff/2761284719/in/set-72157594345940394/ 7 Monday, December 7, 2009
  • 9. O Liferay possui vários níveis de customização. Customização Liferay Extension Código Plugins Environment Fonte Portlets Temas Layouts 8 Monday, December 7, 2009
  • 10. O Liferay possui vários níveis de customização. A primeira Customização estratégía é através de Liferay plugins Extension Código Plugins Environment Fonte Plugins são componentes WAR, facilmente Portlets Temas Layouts organizáveis em repositórios. 8 Monday, December 7, 2009
  • 11. O Liferay possui vários níveis de customização. Quando não Customização resolver com plugins, Liferay vá de EXT Extension Código Plugins Environment Fonte O ambiente de extensão é mais poderoso Portlets Temas Layouts que plugins, porém, mais instrusivo. 8 Monday, December 7, 2009
  • 12. O Liferay possui vários níveis de customização. Em último caso, Customização modifique o código fonte Liferay original Extension Código Plugins Environment Fonte Modificações no código fonte, apesar de Portlets Temas Layouts não imporem limites na customização, prejudicam a evolução para novas versões. 8 Monday, December 7, 2009
  • 13. Focaremos na customização por plugins. Customização Liferay Extension Código Plugins Environment Fonte Portlets Temas Layouts 9 Monday, December 7, 2009
  • 14. Criação de Plugins temas, layouts e portlets http://www.flickr.com/photos/stephenpoff/2874657376/in/set-72157594345940394/ 10 Monday, December 7, 2009
  • 15. pré-reqs Para iniciar o desenvolvimento de plugins, alguns pré-requisitos são necessários 11 Monday, December 7, 2009
  • 16. pré-reqs Para iniciar o desenvolvimento de plugins, alguns pré-requisitos são necessários 11 Monday, December 7, 2009
  • 17. pré-reqs Para iniciar o desenvolvimento de plugins, alguns pré-requisitos são necessários 11 Monday, December 7, 2009
  • 18. Na página de download do Liferay, existe um link ‘Additional Files’ 12 Monday, December 7, 2009
  • 19. Baixe o Liferay Plugins SDK Text 13 Monday, December 7, 2009
  • 20. Baixe o Liferay Plugins SDK Text 13 Monday, December 7, 2009
  • 21. Descompacte o Plugins SDK e veja a seguinte estrutura de diretórios. 14 Monday, December 7, 2009
  • 22. Crie o arquivo build.${usuario}.properties... onde ${usuario} é o nome do usuário logado na máquina 15 Monday, December 7, 2009
  • 23. Configure no Plugin SDK o caminho do servidor Tomcat sobre o qual seu Liferay está sendo executado. 16 Monday, December 7, 2009
  • 24. Portlets primeiros passos... Monday, December 7, 2009
  • 25. Acesse a pasta ‘portlets’ do Plugin SDK... /liferay/liferay-plugins-sdk-5.2.3/portlets $ ./create.sh hello-liferay "Hello Liferay" Buildfile: build.xml create: [unzip] Expanding: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-sdk-5.2.3/ portlets/portlet.zip into /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins- sdk-5.2.3/portlets/hello-liferay-portlet [mkdir] Created dir: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins- sdk-5.2.3/portlets/hello-liferay-portlet/docroot/WEB-INF/tld [copy] Copying 6 files to /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins- sdk-5.2.3/portlets/hello-liferay-portlet/docroot/WEB-INF/tld BUILD SUCCESSFUL Total time: 6 seconds 18 Monday, December 7, 2009
  • 26. ...e utilize o script para criação de um novo portlet... /liferay/liferay-plugins-sdk-5.2.3/portlets $ ./create.sh hello-liferay "Hello Liferay" Buildfile: build.xml create: [unzip] Expanding: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-sdk-5.2.3/ portlets/portlet.zip into /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins- sdk-5.2.3/portlets/hello-liferay-portlet [mkdir] Created dir: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins- sdk-5.2.3/portlets/hello-liferay-portlet/docroot/WEB-INF/tld [copy] Copying 6 files to /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins- sdk-5.2.3/portlets/hello-liferay-portlet/docroot/WEB-INF/tld BUILD SUCCESSFUL Total time: 6 seconds 18 Monday, December 7, 2009
  • 27. ...informando o nome do projeto... /liferay/liferay-plugins-sdk-5.2.3/portlets $ ./create.sh hello-liferay "Hello Liferay" Buildfile: build.xml create: [unzip] Expanding: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-sdk-5.2.3/ portlets/portlet.zip into /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins- sdk-5.2.3/portlets/hello-liferay-portlet [mkdir] Created dir: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins- sdk-5.2.3/portlets/hello-liferay-portlet/docroot/WEB-INF/tld [copy] Copying 6 files to /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins- sdk-5.2.3/portlets/hello-liferay-portlet/docroot/WEB-INF/tld BUILD SUCCESSFUL Total time: 6 seconds 18 Monday, December 7, 2009
  • 28. ...e o nome do portlet. /liferay/liferay-plugins-sdk-5.2.3/portlets $ ./create.sh hello-liferay "Hello Liferay" Buildfile: build.xml create: [unzip] Expanding: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-sdk-5.2.3/ portlets/portlet.zip into /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins- sdk-5.2.3/portlets/hello-liferay-portlet [mkdir] Created dir: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins- sdk-5.2.3/portlets/hello-liferay-portlet/docroot/WEB-INF/tld [copy] Copying 6 files to /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins- sdk-5.2.3/portlets/hello-liferay-portlet/docroot/WEB-INF/tld BUILD SUCCESSFUL Total time: 6 seconds 18 Monday, December 7, 2009
  • 29. Analise a estrutura de diretórios criada. 19 Monday, December 7, 2009
  • 30. /liferay/liferay-plugins-sdk-5.2.3/portlets/hello-liferay-portlet $ ant deploy Buildfile: build.xml compile: merge: Faça o deploy automático [javac] Compiling 1 source file to /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins- do portlet no Liferay sdk-5.2.3/portlets/hello-liferay-portlet/docroot/WEB-INF/classes configurado no arquivo merge: build.${usuario}.properties war: [mkdir] Created dir: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-sdk-5.2.3/dist clean-portal-dependencies: [zip] Building zip: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-sdk-5.2.3/dist/ hello-liferay-portlet-5.2.3.1.war deploy: [copy] Copying 1 file to /liferay/liferay-portal-5.2.3/deploy BUILD SUCCESSFUL Total time: 24 seconds 20 Monday, December 7, 2009
  • 31. 13:38:16,945 INFO [AutoDeployDir:183] Processing hello-liferay-portlet-5.2.3.1.war 13:38:19,275 INFO [PortletAutoDeployListener:77] Copying portlets for /Users/alegomes/sea/edu/ liferay/apps/liferay-portal-5.2.3/deploy/hello-liferay-portlet-5.2.3.1.war (...) 13:39:03,603 INFO [PortletAutoDeployListener:87] Portlets for /Users/alegomes/sea/edu/liferay/apps/ liferay-portal-5.2.3/deploy/hello-liferay-portlet-5.2.3.1.war copied successfully. Deployment will start in a few seconds. 13:40:40,919 INFO [PortletHotDeployListener:227] Registering portlets for hello-liferay-portlet 13:40:41,587 INFO [PortletHotDeployListener:346] 1 portlet for hello-liferay-portlet is available for use Acompanhe o resultado do deploy no log do servidor Liferay. 21 Monday, December 7, 2009
  • 32. Verifique a presença do portlet no diretório de deploy do Liferay Portlet deployado! 22 Monday, December 7, 2009
  • 33. Nosso portlet! Acesse a interface web do portal e verifique a presença do portlet na lista de portlets disponívéis no servidor. 23 Monday, December 7, 2009
  • 34. Nosso portlet! 24 Monday, December 7, 2009
  • 35. /liferay/liferay-plugins-sdk-5.2.3/portlets/hello-liferay-portlet $ ant setup-eclipse Buildfile: build.xml setup-eclipse: [java] Loading jar:file:/Volumes/Data/Documents/sea/edu/liferay/apps/liferay-portal-5.2.3/ tomcat-5.5.27/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/system.properties [java] Loading jar:file:/Volumes/Data/Documents/sea/edu/liferay/apps/liferay-portal-5.2.3/ tomcat-5.5.27/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/portal.properties [java] Loading jar:file:/Volumes/Data/Documents/sea/edu/liferay/apps/liferay-portal-5.2.3/ tomcat-5.5.27/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/com/liferay/portal/tools/ dependencies/portal-tools.properties [java] Loading jar:file:/Volumes/Data/Documents/sea/edu/liferay/apps/liferay-portal-5.2.3/ tomcat-5.5.27/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/captcha.properties [java] 14:07:11,904 INFO [PortalImpl:252] Portal lib directory /Volumes/Data/Documents/ sea/edu/liferay/apps/liferay-portal-5.2.3/tomcat-5.5.27/webapps/ROOT/WEB-INF/lib/ [java] Updating /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-sdk-5.2.3/ portlets/hello-liferay-portlet/.project [java] Updating /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-sdk-5.2.3/ portlets/hello-liferay-portlet/.classpath Crie um projeto BUILD SUCCESSFUL Eclipse a partir do Total time: 24 seconds código gerado pelo Plugins SDK 25 Monday, December 7, 2009
  • 36. Importe o projeto do portlet no Eclipse 26 Monday, December 7, 2009
  • 37. Todo portlet criado pelo SDK busca as libs do projeto ‘portal’ 27 Monday, December 7, 2009
  • 38. Baixar código fonte do Liferay 28 Monday, December 7, 2009
  • 40. Descompacte o código fonte do Liferay 29 Monday, December 7, 2009
  • 41. Confira a estrutura de diretórios criada. 30 Monday, December 7, 2009
  • 42. Crie um novo projeto no Eclipse para o código fonte do Liferay 31 Monday, December 7, 2009
  • 43. Ainda existem erros 32 Monday, December 7, 2009
  • 45. Remover libs problemáticas 34 Monday, December 7, 2009
  • 47. Adicionar diretório de classes 35 Monday, December 7, 2009
  • 48. Adicionar diretório de classes 35 Monday, December 7, 2009
  • 49. Diretório de classes adicionado às libs do projeto de portlet 36 Monday, December 7, 2009
  • 50. Acabaram os problemas. 37 Monday, December 7, 2009
  • 51. Código Java do portlet 38 Monday, December 7, 2009
  • 52. Código JSP do portlet 39 Monday, December 7, 2009
  • 53. Não se iluda achando que já sabe tudo http://www.flickr.com/photos/purplemattfish/3404482191/ 40 Monday, December 7, 2009
  • 54. Invista alguns tomates* para dominar a teoria dos portlets * The Pomodoro Technique http://www.flickr.com/photos/stephenpoff/158536767/in/set-72157594345940394/ 41 Monday, December 7, 2009
  • 55. e por falar em tomates... Suponha que portlets sejam tomates http://www.flickr.com/photos/darwinbell/387755335/ 42 Monday, December 7, 2009
  • 56. Tomates são guardados em caixas. http://www.flickr.com/photos/chrismar/3631784233/ 43 Monday, December 7, 2009
  • 57. Tomates têm um ciclo de vida muito bem definido. eles nascem... http://www.flickr.com/photos/urbanislands/3876172828/ 44 Monday, December 7, 2009
  • 59. ...reproduzem-se... http://www.flickr.com/photos/jp_math54/3819627661/ 46 Monday, December 7, 2009
  • 61. ...comidos... http://www.flickr.com/photos/gezellig-girl/3784584015/ 48 Monday, December 7, 2009
  • 63. Entenda a lógica da programação orientada a componentes do mundo Java http://www.flickr.com/photos/jp_math54/3819628579/ 50 Monday, December 7, 2009
  • 65. componente é uma peça independente de software http://www.flickr.com/photos/19684903@N00/346425180/ 51 Monday, December 7, 2009
  • 66. componente é uma peça independente de software todo componente tem um ciclo de vida bem definido http://www.flickr.com/photos/19684903@N00/346425180/ 51 Monday, December 7, 2009
  • 67. componente é uma peça independente de software todo componente tem um ciclo de vida bem definido o ciclo de vida de um componente é gerenciado por um container http://www.flickr.com/photos/19684903@N00/346425180/ 51 Monday, December 7, 2009
  • 68. componente é uma peça independente de software todo componente tem um ciclo de vida bem definido o ciclo de vida de um componente é gerenciado por um container a cada transição entre fases do ciclo de vida, um método do http://www.flickr.com/photos/19684903@N00/346425180/ componente é chamado 51 Monday, December 7, 2009
  • 71. componente são empacotados cada tipo de componente possui seu próprio tipo de pacote WAR, JAR, EAR, SAR, RAR... http://www.flickr.com/photos/19684903@N00/346425180/ 52 Monday, December 7, 2009
  • 72. componente são empacotados cada tipo de componente possui seu próprio tipo de pacote WAR, JAR, EAR, SAR, RAR... num pacote de componentes há classes + recursos + descritor http://www.flickr.com/photos/19684903@N00/346425180/ 52 Monday, December 7, 2009
  • 73. componente são empacotados cada tipo de componente possui seu próprio tipo de pacote WAR, JAR, EAR, SAR, RAR... num pacote de componentes há classes + recursos + descritor cada tipo de pacote possui seu próprio descritor web.xml, ejb-jar.xml, enterprise.xml, -service.xml http://www.flickr.com/photos/19684903@N00/346425180/ 52 Monday, December 7, 2009
  • 74. Para fazer uma Applet, uma Servlet ou um Midlet... 53 Monday, December 7, 2009
  • 75. ...precisamos estender classes da respectiva API. 54 Monday, December 7, 2009
  • 76. Geralmente, essas classes declaram métodos abstratos (ou não)... 55 Monday, December 7, 2009
  • 77. ...que precisam ser sobrescritos. 56 Monday, December 7, 2009
  • 78. Mas, pra quê serve essa sobrescrita? 57 Monday, December 7, 2009
  • 79. Para sabermos quando o componente mudou de estado 58 Monday, December 7, 2009
  • 80. O container, responsável pelo ciclo de vida dos componentes, notifica-os por meio de métodos de callback sempre que houver uma transição de estado. 59 Monday, December 7, 2009
  • 81. No fundo, é tudo a mesma coisa. 60 Monday, December 7, 2009
  • 82. Inclusive portlets 61 Monday, December 7, 2009
  • 83. Inclusive portlets Invocado pelo container quando alguma submissão de dados é feita ao componente. 61 Monday, December 7, 2009
  • 84. Inclusive portlets Invocado pelo container quando há a necessidade de reconstruir a visualização do componente 61 Monday, December 7, 2009
  • 86. Dessa forma, temos... 63 Monday, December 7, 2009
  • 87. portlet componente de software que gera fragmentos HTML em um portal http://www.flickr.com/photos/spisharam/2742433355/ 64 Monday, December 7, 2009
  • 88. portlet container ambiente gerenciador de portlets e seus ciclos de vida http://www.flickr.com/photos/fensterbme/241478156/ 65 Monday, December 7, 2009
  • 89. Portlets geram fragmentos de HTML portlets são agrupados em pacotes WAR pacotes WAR são deployados em Portlet Containers 66 Monday, December 7, 2009
  • 90. um pacote WAR de portlets contém... my-portlet.war Classes + Recursos + Descritor 67 Monday, December 7, 2009
  • 91. Descritores podem ser... Padrões web.xml portlet.xml my-portlet.war Proprietários liferay-portlet.xml liferay-display.xml 68 Monday, December 7, 2009
  • 92. O mais importante é se lembrar que portlets ≠ servlets 69 Monday, December 7, 2009
  • 93. Portlets têm modos definem a função do portlet no instante Monday, December 7, 2009
  • 94. View Edit Monday, December 7, 2009 ? Help 71
  • 95. Liferay Extension configuration mode 72 Monday, December 7, 2009
  • 96. Liferay Extension look and feel mode 73 Monday, December 7, 2009
  • 97. Portlets têm estados definem o tamanho da tela que estão ocupando Monday, December 7, 2009
  • 98. normal 75 Monday, December 7, 2009
  • 99. maximizado 76 Monday, December 7, 2009
  • 100. minimizado 77 Monday, December 7, 2009
  • 101. Portlet 2.0 Eventos AJAX Filtros IPC http://jcp.org/en/jsr/detail?id=286 78 Monday, December 7, 2009
  • 102. Interessado? o/ sea@seatecnologia.com.br 79 Monday, December 7, 2009