Sobre jRuby 1.7.5 e Warbler

Ei,

Primeiro post por aqui (entre muitos outros espero). Ok, direto ao ponto, no meu trabalho, muitas vezes temos que implantar aplicativos RoR em arquiteturas que usam principalmente Java, então estamos acostumados a confiar muito no jRuby e no Warbler para criar arquivos .WAR que contém nossos aplicativos. No entanto, jRuby 1.7.5 foi lançado recentemente e foi trazido à nossa atenção na semana passada que alguns de nossos arquivos .WAR gerados não estavam mais funcionando no Windows. Eu não verifiquei todas as plataformas neste momento, mas irei. Consequentemente, comecei a investigar e descobri que .WAR gerados com Warbler usando jRuby 1.7.5 são inutilizáveis ​​e há um monte de problemas referenciados no GitHub / SO, sendo o principal este: https://github.com/jruby/ warbler / issues / 197 .

Dito isso, não seria muito um post sem fornecer uma solução. Então, a primeira coisa que fiz foi fazer o downgrade do jRuby para 1.7.4 e regenerar um .WAR como costumo fazer, mas acabei tendo um problema semelhante a este: http://stackoverflow.com/questions/14462959/warbler-seems -para-usar-um-diferente-ffi-que-não-entende-o-tamanho-t e percebi que o .WAR gerado estava usando em jruby-stdlib-1.7.5vez do jruby-stdlib-1.7.4que era um pouco estranho e demorei um pouco para descobrir que se você quiser pode bloquear seus jars jRuby usando a seguinte gema: https://rubygems.org/gems/jruby-jars . Bloqueei minha versão em 1.7.4, mas comecei a ter problemas comjruby-opensslque foi atualizado junto com o jRuby, então eu bloqueei na versão 0.8.8, que era a última versão que eu sabia que estava funcionando com o jRuby 1.7.4. Para resumir tudo acabei com as seguintes linhas no meu Gemfile:

gem 'jruby-jars', '1.7.4', :platforms => [:jruby]
gem
'jruby-openssl', '0.8.8', :require => false, :platforms => [:jruby]

Agora, tudo o que espero é que tenhamos uma (s) nova (s) versão (ões) do Warbler e / ou jRuby que consertem tudo, mas, por enquanto, se você tiver que gerar .WAR que supostamente rodam no Windows, esta é a única maneira para ir que eu conheço. No entanto, se você encontrar uma maneira mais elegante de fazer isso ou de fazer .WAR com a versão mais recente do jRuby, entre em contato comigo no Twitter ou algo assim, porque eu estaria muito interessado.

Felicidades.