Your SlideShare is downloading. ×
SEA Rails Portlet
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

SEA Rails Portlet

1,091

Published on

Desenvolvimento de portlets em rails com o rails-portlet

Desenvolvimento de portlets em rails com o rails-portlet

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,091
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
13
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Desenvolvimento de portlets em Rails
  • 2. 2
  • 3. Agenda • Ambientes • Ferramentas • Preparando o ambiente • Montando um projeto • Deploy • Extras - File Download - Preferências 3
  • 4. Ambientes Desenvolvimento Produção 4
  • 5. Desenvolvimento • Servidor leve (WEBrick) • Gems nativas • Produtividade 5
  • 6. Produção • .war • Deploy no Liferay • Gems compatíveis com o JRuby • Xmls de configuração do portlet • Escalabilidade 6
  • 7. Ferramentas • Rails-portlet - É um generic-portlet responsável por coordenar a conversa entre o Liferay e a aplicação Rails • Caterpillar - Responsável por auxiliar na montagem do projeto, empacotamento (.war) e comunicação com o Liferay 7
  • 8. Rails-portlet 8
  • 9. Caterpillar • sudo gem install caterpillar • sudo jgem install caterpillar • Dependências - hpricot - warbler 9
  • 10. Preparando o ambiente • JRuby >= 1.4 - apt-get install jruby (Debian like) ou port install jruby (MacOS) - http://jruby.org - Garanta que a variável JRUBY_HOME exista • Gems (Instale no Ruby e no JRuby) - sudo gem install caterpillar rails warbler jruby-jars - sudo jgem install caterpillar rails warbler jruby-jars - Não use GEM_HOME 10
  • 11. Preparando o ambiente • Atenção! • As gems devem ser instaladas tanto no Ruby (desenvolvimento) quanto no JRuby, pois no empacotamento elas serão lidas do JRuby 11
  • 12. Preparando o ambiente • Rails-Portlet >= 0.10.0 - Coloque o jar do Rails-Portlet em: liferay/tomcat/webapps/ROOT/WEB-INF/lib/ - Ou caterpillar jar:install 12
  • 13. Montando um projeto • Criar o projeto rails - Para caterpillar >= 1.3.0 - caterpillar rails nome_do_projeto [tulios] ~/Projetos/rails caterpillar rails mapa_do_tesouro Checking for required gems...OK Checking for JRuby binary...OK Checking for required gems in JRuby...OK Creating Rails project...OK Updating config/environment.rb...OK Activating caterpillar...OK Configuring warbler...OK 13
  • 14. Montando um projeto • Os portlets são mapeamentos no config/routes.rb 14
  • 15. Montando um projeto • Podemos utilizar os wildcards :controller e :action para que o portlet possa acessar outros controladores e actions • Caso a action não seja informada, o método index será chamado 15
  • 16. Montando um projeto A “porta de entrada” do portlet será o controller e action definidos no config/routes.rb 16
  • 17. Montando um projeto • Configurando os portlets - config/portlets.rb 17
  • 18. Montando um projeto • No config/portlets.rb podemos configurar cada portlet (ser for necessário) 18
  • 19. Montando um projeto • Ainda contamos com as seguintes opções para cada um: 19
  • 20. Montando um projeto • Em config/warble.rb configuramos características do empacotamento e do funcionamento em produção 20
  • 21. Montando um projeto • No config/warble.rb devemos informar as gems nativas do Java, para que o warbler faça o tratamento correto no empacotamento 21
  • 22. Montando um projeto • Ainda podemos definir o pool de runtimes do JRuby • Caso nenhum valor seja informado o pool irá crescer de acordo com a necessidade 22
  • 23. Deploy • Primeiro devemos gerar os xmls de configuração do portlet - caterpillar makexml Using Liferay schema build 5201, version 5.2.1 Caterpillar 1.3.0 configured for Liferay version 5.2.1 at /opt/liferay/tomcat !! no route for portlet_test_bench * -> tmp/portlet-ext.xml * -> tmp/liferay-portlet-ext.xml * -> tmp/liferay-display.xml 23
  • 24. Deploy • Não se preocupe com a mensagem - !! no route for portlet_test_bench • Essa rota é utilizada apenas para teste • Os arquivos criados na pasta tmp foram: - portlet-ext.xml - liferay-portlet-ext.xml - liferay-display.xml 24
  • 25. Deploy • Os arquivos deverão ser colocados em ../liferay/tomcat/webapps/ROOT/WEB-INF • Utilize o comando - caterpillar deploy:xml * deploying XML files to /opt/liferay/tomcat/webapps/ ROOT/WEB-INF * tmp/portlet-ext.xml * tmp/liferay-portlet-ext.xml * tmp/liferay-display.xml 25
  • 26. Deploy • O arquivo liferay-display.xml possui as categorias dos portlets presentes no liferay + as categorias do seu portlet • Esta edição pode ser feita de forma manual 26
  • 27. Deploy • Os arquivos portlet-ext.xml e liferay-portlet-ext.xml configuram o seu portlet com o Rails-portlet • Caso você tenha outros portlets em Rails mantenha a configuração de todos eles nesses arquivos 27
  • 28. Deploy • Resumindo a geração e o deploy dos XMLs - caterpillar makexml - caterpillar deploy:xml 28
  • 29. Deploy • Para gerar o .war utilize - caterpillar warble * Building WAR using Warbler 1.0.1 on JRuby at /opt/jruby/bin/jruby * jar cf meu_portlet.war -C tmp/war . * Warbler finished successfully 29
  • 30. Deploy • O arquivo .war deverá ser gerado na raiz do projeto • Coloque o arquivo em /liferay/deploy - caterpillar deploy:war 30
  • 31. Deploy • Resumindo a geração e o deploy do .war - caterpillar warble - caterpilar deploy:war 31
  • 32. Deploy • Podemos resumir todo o deploy (xmls + .war) em um comando - caterpillar deploy [tulios] ~/Projetos/rails/teste caterpillar deploy Caterpillar 1.3.0 configured for Liferay version 5.2.3 at /opt/liferay/tomcat !! no route for portlet_test_bench * -> tmp/portlet-ext.xml * -> tmp/liferay-portlet-ext.xml * -> tmp/liferay-display.xml * Building WAR using Warbler 1.0.1 on JRuby at /Applications/jruby-1.4.0/bin/jruby jar cf teste.war -C tmp/war . * Warbler finished successfully * deploying XML files to /opt/liferay/tomcat/webapps/ROOT/WEB-INF * tmp/portlet-ext.xml * tmp/liferay-portlet-ext.xml * tmp/liferay-display.xml * ..removing previous installs.. * deploying the WAR package to /opt/liferay/deploy/teste.war 32
  • 33. Extras - File Download • Resource Portlet - Faça um método de controller que envie um arquivo 33
  • 34. Extras - File Download • Inclua o módulo Liferay no seu application_helper.rb • Criando a URL para o download 34
  • 35. Extras - Preferências • Habilite o modo de edição - instanceable true = preferências para cada instância de portlet - instanceable false = preferências para qualquer “instância” do portlet 35
  • 36. Extras - Preferências • No controller mapeado como “porta de entrada” do portlet crie um método preferences 36
  • 37. Extras - Preferências • O Rails-portlet irá fornecer um hash com as preferências salvas no Liferay • Para isso inclua o módulo PortletSupport para ter acesso ao método get_liferay_preferences 37
  • 38. Extras - Preferências • Uma boa abordagem seria: 38
  • 39. Extras - Preferências • Dessa forma teremos acesso as preferências em cada método de action • Atenção! • Em modo de edição o único método chamado será o preferences, tanto para post quanto para get 39
  • 40. Extras - Preferências • Lembre-se! • As preferências ficam salvas no Liferay e não na aplicação, por isso a necessidade de recupera- las a cada requisição 40
  • 41. Extras - Preferências • Um exemplo de form para o modo de edição 41
  • 42. Extras - Preferências • Somente os parâmetros com o sufixo _preference serão salvos no Liferay • O método preferences será chamado novamente após a operação 42
  • 43. Mais • Para mais informações - http://github.com/tulios/caterpillar - http://github.com/tulios/html2jsr286 • Esse é o rails-portlet =] 43
  • 44. Obrigado 44
  • 45. P&R

×