Your SlideShare is downloading. ×
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
SEA Rails Portlet
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,100

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,100
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
14
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

×