3. Liferay Customization

6,545 views

Published on

Princípios da customização do Liferay Portal. Os slides apresentam as diferentes estratégias de customização do Liferay, o processo de preparação do ambiente de desenvolvimento e um breve exemplo de construção de portlet através do Liferay Plugins SDK.

Published in: Technology, Art & Photos
2 Comments
17 Likes
Statistics
Notes
No Downloads
Views
Total views
6,545
On SlideShare
0
From Embeds
0
Number of Embeds
462
Actions
Shares
0
Downloads
1
Comments
2
Likes
17
Embeds 0
No embeds

No notes for slide

3. Liferay Customization

  1. 1. customizando o by http://www.flickr.com/photos/dejay181/461011654/ 1 Monday, December 7, 2009
  2. 2. 2 Monday, December 7, 2009
  3. 3. só lembrando a moda é customizar para deixar o portal com a sua cara 3 Monday, December 7, 2009
  4. 4. 4 Monday, December 7, 2009
  5. 5. 4 Monday, December 7, 2009
  6. 6. Interessado? o/ sea@seatecnologia.com.br 5 Monday, December 7, 2009
  7. 7. Criar páginas, configurar layouts, distribuir portlets é apenas a ponta do iceberg... 6 Monday, December 7, 2009
  8. 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. 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. 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. 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. 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. 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. 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. 15. pré-reqs Para iniciar o desenvolvimento de plugins, alguns pré-requisitos são necessários 11 Monday, December 7, 2009
  16. 16. pré-reqs Para iniciar o desenvolvimento de plugins, alguns pré-requisitos são necessários 11 Monday, December 7, 2009
  17. 17. pré-reqs Para iniciar o desenvolvimento de plugins, alguns pré-requisitos são necessários 11 Monday, December 7, 2009
  18. 18. Na página de download do Liferay, existe um link ‘Additional Files’ 12 Monday, December 7, 2009
  19. 19. Baixe o Liferay Plugins SDK Text 13 Monday, December 7, 2009
  20. 20. Baixe o Liferay Plugins SDK Text 13 Monday, December 7, 2009
  21. 21. Descompacte o Plugins SDK e veja a seguinte estrutura de diretórios. 14 Monday, December 7, 2009
  22. 22. Crie o arquivo build.${usuario}.properties... onde ${usuario} é o nome do usuário logado na máquina 15 Monday, December 7, 2009
  23. 23. Configure no Plugin SDK o caminho do servidor Tomcat sobre o qual seu Liferay está sendo executado. 16 Monday, December 7, 2009
  24. 24. Portlets primeiros passos... Monday, December 7, 2009
  25. 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. 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. 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. 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. 29. Analise a estrutura de diretórios criada. 19 Monday, December 7, 2009
  30. 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. 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. 32. Verifique a presença do portlet no diretório de deploy do Liferay Portlet deployado! 22 Monday, December 7, 2009
  33. 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. 34. Nosso portlet! 24 Monday, December 7, 2009
  35. 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. 36. Importe o projeto do portlet no Eclipse 26 Monday, December 7, 2009
  37. 37. Todo portlet criado pelo SDK busca as libs do projeto ‘portal’ 27 Monday, December 7, 2009
  38. 38. Baixar código fonte do Liferay 28 Monday, December 7, 2009
  39. 39. 28 Monday, December 7, 2009
  40. 40. Descompacte o código fonte do Liferay 29 Monday, December 7, 2009
  41. 41. Confira a estrutura de diretórios criada. 30 Monday, December 7, 2009
  42. 42. Crie um novo projeto no Eclipse para o código fonte do Liferay 31 Monday, December 7, 2009
  43. 43. Ainda existem erros 32 Monday, December 7, 2009
  44. 44. 33 Monday, December 7, 2009
  45. 45. Remover libs problemáticas 34 Monday, December 7, 2009
  46. 46. 35 Monday, December 7, 2009
  47. 47. Adicionar diretório de classes 35 Monday, December 7, 2009
  48. 48. Adicionar diretório de classes 35 Monday, December 7, 2009
  49. 49. Diretório de classes adicionado às libs do projeto de portlet 36 Monday, December 7, 2009
  50. 50. Acabaram os problemas. 37 Monday, December 7, 2009
  51. 51. Código Java do portlet 38 Monday, December 7, 2009
  52. 52. Código JSP do portlet 39 Monday, December 7, 2009
  53. 53. Não se iluda achando que já sabe tudo http://www.flickr.com/photos/purplemattfish/3404482191/ 40 Monday, December 7, 2009
  54. 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. 55. e por falar em tomates... Suponha que portlets sejam tomates http://www.flickr.com/photos/darwinbell/387755335/ 42 Monday, December 7, 2009
  56. 56. Tomates são guardados em caixas. http://www.flickr.com/photos/chrismar/3631784233/ 43 Monday, December 7, 2009
  57. 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
  58. 58. ...crescem... http://www.flickr.com/photos/deborahnaomi/1820652016/ 45 Monday, December 7, 2009
  59. 59. ...reproduzem-se... http://www.flickr.com/photos/jp_math54/3819627661/ 46 Monday, December 7, 2009
  60. 60. ...são colhidos... http://www.flickr.com/photos/the_ewan/2962762666/ 47 Monday, December 7, 2009
  61. 61. ...comidos... http://www.flickr.com/photos/gezellig-girl/3784584015/ 48 Monday, December 7, 2009
  62. 62. ...ou morrem. http://www.flickr.com/photos/another007/2885665653/ 49 Monday, December 7, 2009
  63. 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
  64. 64. http://www.flickr.com/photos/19684903@N00/346425180/ 51 Monday, December 7, 2009
  65. 65. componente é uma peça independente de software http://www.flickr.com/photos/19684903@N00/346425180/ 51 Monday, December 7, 2009
  66. 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. 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. 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
  69. 69. http://www.flickr.com/photos/19684903@N00/346425180/ 52 Monday, December 7, 2009
  70. 70. componente são empacotados http://www.flickr.com/photos/19684903@N00/346425180/ 52 Monday, December 7, 2009
  71. 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. 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. 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. 74. Para fazer uma Applet, uma Servlet ou um Midlet... 53 Monday, December 7, 2009
  75. 75. ...precisamos estender classes da respectiva API. 54 Monday, December 7, 2009
  76. 76. Geralmente, essas classes declaram métodos abstratos (ou não)... 55 Monday, December 7, 2009
  77. 77. ...que precisam ser sobrescritos. 56 Monday, December 7, 2009
  78. 78. Mas, pra quê serve essa sobrescrita? 57 Monday, December 7, 2009
  79. 79. Para sabermos quando o componente mudou de estado 58 Monday, December 7, 2009
  80. 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. 81. No fundo, é tudo a mesma coisa. 60 Monday, December 7, 2009
  82. 82. Inclusive portlets 61 Monday, December 7, 2009
  83. 83. Inclusive portlets Invocado pelo container quando alguma submissão de dados é feita ao componente. 61 Monday, December 7, 2009
  84. 84. Inclusive portlets Invocado pelo container quando há a necessidade de reconstruir a visualização do componente 61 Monday, December 7, 2009
  85. 85. 62 Monday, December 7, 2009
  86. 86. Dessa forma, temos... 63 Monday, December 7, 2009
  87. 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. 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. 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. 90. um pacote WAR de portlets contém... my-portlet.war Classes + Recursos + Descritor 67 Monday, December 7, 2009
  91. 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. 92. O mais importante é se lembrar que portlets ≠ servlets 69 Monday, December 7, 2009
  93. 93. Portlets têm modos definem a função do portlet no instante Monday, December 7, 2009
  94. 94. View Edit Monday, December 7, 2009 ? Help 71
  95. 95. Liferay Extension configuration mode 72 Monday, December 7, 2009
  96. 96. Liferay Extension look and feel mode 73 Monday, December 7, 2009
  97. 97. Portlets têm estados definem o tamanho da tela que estão ocupando Monday, December 7, 2009
  98. 98. normal 75 Monday, December 7, 2009
  99. 99. maximizado 76 Monday, December 7, 2009
  100. 100. minimizado 77 Monday, December 7, 2009
  101. 101. Portlet 2.0 Eventos AJAX Filtros IPC http://jcp.org/en/jsr/detail?id=286 78 Monday, December 7, 2009
  102. 102. Interessado? o/ sea@seatecnologia.com.br 79 Monday, December 7, 2009
  103. 103. Q&A Monday, December 7, 2009

×