RAWR can't find jruby_fetch


#1

Hi people!

I am trying to use RAWR to package a netbeans/monkeybars project, but am
running into some bugs.

First (on version 1.1.1) I was getting:
undefined local variable or method `processed_file’ for main:Object

So I upgraded to 1.1.2, which apparently fixes that bug. Now I am
getting:
no such file to load – jruby_fetch

This is even if I try to use ‘rake -T’ on the RAWR generated rakefile.
So
including RAWR is trying to load this
mysterious jruby_fetch gem that I cannot find any reference to anywhere.

Any help?

Les


#2

Leslie,
Looks like yet another bug during the release.
Can you create an empty jruby_fetch.rb (touch jruby_fetch.rb) in your
project root? I tried this after reproducing the bug, and it let me
run the rawr:jar task after that.
I’ll get a fix for that released on Monday.


#3

On Fri, Dec 19, 2008 at 2:17 AM, Logan B. removed_email_address@domain.invalid
wrote:

Leslie,
Looks like yet another bug during the release.
Can you create an empty jruby_fetch.rb (touch jruby_fetch.rb) in your
project root? I tried this after reproducing the bug, and it let me run the
rawr:jar task after that.
I’ll get a fix for that released on Monday.

Ok, did that. Then I get a message about a constant ‘Java’ that doesn’t
exist - this didn’t happen before with 1.1.1.
Anyway, so I took that as a cue to try and run everything through jruby
like
so:

export
PATH=$PATH:/home/lesliev/data/bin/netbeans-6.5/ruby2/jruby-1.1.4/bin
export PATH=$PATH:/home/lesliev/data/bin/netbeans-6.5/ruby2/jruby-1.1.4
jruby /usr/bin/gem install -r rawr
jruby /usr/bin/rake rawr:jar

This seems to work, I get:

(in /home/lesliev/monkey/ummpcomposer)
Copying non-source file compose/Composer.form to
/home/lesliev/monkey/ummpcomposer/package/classes/compose/Composer.form
Copying non-source file README.txt to
/home/lesliev/monkey/ummpcomposer/package/classes/README.txt
=== Creating jar file:
/home/lesliev/monkey/ummpcomposer/package/jar/ChangeMe.jar

…but when I try and run it:

lesliev@lesliev-laptop:~/monkey/ummpcomposer/package/jar$ java -jar
ChangeMe.jar
Exception in thread “main” :1:
file:/home/lesliev/monkey/ummpcomposer/package/jar/ChangeMe.jar!/main.class:1:
Invalid char \276' ('¾') in expression (SyntaxError) from <script>:1:inrequire’
from :1
…internal jruby stack elided…

which I assume is because of this:
http://jira.codehaus.org/browse/JRUBY-1628
I am running jruby 1.1.4 which came with netbeans.

So I guess I’ll keep tinkering with jruby. I’m not really sure how jruby
and
ruby play together on the same machine - everything runs fine in the
Netbeans environment (my Monkeybars programs work well).


#4

On Dec 19, 2008, at 7:05 AM, Leslie V. wrote:

Ok, did that. Then I get a message about a constant ‘Java’ that
doesn’t
exist - this didn’t happen before with 1.1.1.
Anyway, so I took that as a cue to try and run everything through
jruby like
so:

The latest Rawr is dependent on JRuby now. This weekend I’m planning
on setting up Rawr to be a JRuby only gem. This is so we can ride some
of JRuby’s code, such as classpath name mangling for the compiler, and
perhaps the compiler itself (so you don’t get incompatible versions
between your runtime JRuby and your environment JRuby in terms of what
you compiled).

export PATH=$PATH:/home/lesliev/data/bin/netbeans-6.5/ruby2/
jruby-1.1.4/bin
export PATH=$PATH:/home/lesliev/data/bin/netbeans-6.5/ruby2/
jruby-1.1.4
jruby /usr/bin/gem install -r rawr
jruby /usr/bin/rake rawr:jar

You can use jruby -S to invoke a script from JRuby’s bin. For example,
jruby -S gem install rawr

…internal jruby stack elided…

Something is terribly wrong there in terms of the bytecode generated.
Things I would try:

  1. jruby -S rake rawr:clean; jruby -S rake rawr:jar #
    recompile the files
  2. Find out if your environment JRuby differs from your runtime JRuby:
    jruby -v; java -jar lib/java/jruby-complete.jar -v
    You may need to ensure these are the same by upgrading the version
    Netbeans is using, or making your project use the Netbeans version.
    1.1.4 is a bit old. Charles Nutter might know better than I if that
    fixes certain problems. I believe 1.1.7 was just released.
  3. Turn off Ruby compilation in your build configuration. All this
    will do is copy the Ruby files into the jar. The end result should be
    that the startup time is a little slower than compiled mode (JRuby
    will compile these files are they are required instead of having them
    compiled to start with).

Please let me know how any of that works out for you.

which I assume is because of this:
http://jira.codehaus.org/browse/JRUBY-1628
I am running jruby 1.1.4 which came with netbeans.

So I guess I’ll keep tinkering with jruby. I’m not really sure how
jruby and
ruby play together on the same machine - everything runs fine in the
Netbeans environment (my Monkeybars programs work well).

I aliased my JRuby scripts to have a j in front. This way I have jgem,
jrake, etc. Remembering where to install gems (did I update this gem
in MRI or JRuby?) was a problem at first, but that was the only
heartache I remember.


#5

On Dec 19, 2008, at 9:54 AM, Logan B. wrote:

project root? I tried this after reproducing the bug, and it let
so:
jruby-1.1.4/bin
This seems to work, I get:
…but when I try and run it:

fixes certain problems. I believe 1.1.7 was just released.

http://jira.codehaus.org/browse/JRUBY-1628
I am running jruby 1.1.4 which came with netbeans.

I just had a chance to actually read the ticket. I would upgrade the
JRuby that’s on your path (or just drop in a new one and put that on
your path instead) to 1.1.7.


#6

Logan B. wrote:

I just had a chance to actually read the ticket. I would upgrade the
JRuby that’s on your path (or just drop in a new one and put that on
your path instead) to 1.1.7.

Note that 1.1.7 is currently trunk and in development. You’d probably be
better off grabbing 1.1.6.

  • Charlie