Jruby-openssl gem within a java web start deployment

frame = javax.swing.JFrame.new(“Hello JRuby!”)

6
17
do you know how could i solve this? am i missing something? thanks for your help.


To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

2010/2/2 Gonzalo Suárez [email protected]:

i have a very simple app in jruby that loads a window and prints “Hello JRuby!” in base64 encoding.

after this I prepare 2 jars, one for the gems and another one for the app. i signed all the jars including jruby-complete.

then i run it and everything seems to work but it happens and  error. this is what javaws console shows:

/home/gonzalo/.gem/jruby/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:440:in load_missing_constant': uninitialized constant OpenSSL::Digest::OPENSSL_VERSION_NUMBER (NameError) Â Â Â from /home/gonzalo/.gem/jruby/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:80:in const_missing_with_dependencies’
   from file:/home/gonzalo/webstart_test/gems.jar!/gems/jruby-openssl-0.6/lib/openssl/digest.rb:23
[…]

it seems that there is a problem with jruby-openssl gem when run from javaws. this simple app work fine when run from command line with jruby.

do you know how could i solve this? am i missing something? thanks for your help.

You are not missing anything. It just kinda sucks right now :frowning:

jruby-openssl lives as a gem because of the uncertain nature of
including a cryptography library in JRuby itself. As a result, it’s
very cumbersome to bundle jruby-openssl in a WAR or JAR file along
with JRuby, because it tries to load it as an external extension. This
must be fixed, and I think we really should fix it for 1.5. The Google
AppEngine folks have also run into this; it’s almost impossible to get
jruby-openssl packaged nicely right now.

Work with us to get this fixed, starting by filing a bug about
embedding jruby-openssl. We’ll go from there and make sure this use
case works for you and for anyone else in the future.

  • Charlie

To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

On Tue, Feb 2, 2010 at 3:10 PM, Charles Oliver N.
[email protected] wrote:

Work with us to get this fixed, starting by filing a bug about
embedding jruby-openssl. We’ll go from there and make sure this use
case works for you and for anyone else in the future.

I’m also quite often hear similar thing about yaml/yecht thing, since
there is also a JAR inside a JAR there, and it doesn’t work in some
use cases (like entire-app-in-a-jar).

Maybe, these 2 situation are similar?

Thanks,
–Vladimir


To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

Hi all,

We’ve been able to run our app within a java web start environment doing
this:

  1. grab the jopenssl.jar out of the gem jruby-openssl-0.6 and put it
    with the rest of the jars (other jar dependencies)
  2. sign the jopenssl.jar
  3. add jopenssl.jar has a new resource in the app’s jnlp file.

Then it should work. It seems that jars inside gems can’t be located
or loaded from some environments like java web start. I don’t really
know what’s going on… :frowning:

Best regards.
Gonzalo.

On Tue, Feb 2, 2010 at 6:47 PM, Vladimir S. [email protected]
wrote:

Maybe, these 2 situation are similar?


Gonzalo Suárez | Developer
Tlf: +34 915541007 Ext. 261
gonzalo(at)abstra(dot)cc
http://abstra.cc


To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

I think I may have a solution for this…rather than failing hard if
we can’t load an extension gem, we can modify it to go ahead and just
try to load the extension class anyway. That will allow it to work
with extensions just in classpath.

I’ll give it a shot today.

On Tue, Feb 2, 2010 at 12:59 PM, Gonzalo [email protected] wrote:

or loaded from some environments like java web start. I don’t really

use cases (like entire-app-in-a-jar).


To unsubscribe from this list, please visit:

  http://xircles.codehaus.org/manage_email


To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

Actually, this seems to work fine already. Let’s take a step back
here…

Here’s what I did to get jruby-openssl embedded in the same jar as
JRuby:

  1. unjar jruby.jar contents (or jruby-complete.jar)
  2. copy all jruby-openssl/lib contents to the same dir
  3. unjar jopenssl.jar in the same dir
  4. rejar the whole shebang (deleting jopenssl is optional)

I then ran with this jruby-with-ssl.jar, bcprov jar, and bcmail jar in
-cp, passed -e “require ‘openssl’”, and it worked fine.

So combining the jars is not difficult (though it’s more difficult
than it probably should be). Which problems does that leave for you
folks?

  • can’t register BC provider? I suppose this could affect environments
    with stricter security settings…
  • really want a single master jar? Unjarring and rejarring the bc jars
    did not work for me; it didn’t like the signatures that came along.
  • something else?
  • Charlie

On Wed, Feb 3, 2010 at 10:27 AM, Charles Oliver N.
[email protected] wrote:

We’ve been able to run our app within a java web start environment doing this:

On Tue, Feb 2, 2010 at 3:10 PM, Charles Oliver N.

  http://xircles.codehaus.org/manage_email


To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email