Details

    • Type: Bug Bug
    • Status: Resolved Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: JRuby 1.6, JRuby 1.6.1, JRuby 1.6.2
    • Fix Version/s: JRuby 1.7.0.RC1
    • Component/s: None
    • Labels:
      None
    • Number of attachments :
      1

      Description

      following issues pop up with using jruby-core maven artifact:

      • jline-1.0.jar is not on maven central (jruby-1.6.0 references a jline on maven central !)
      • jffi-native.jar is missing completely since not part of jffi and not part of any referenced dependency (feature or bug ?)
      • jaffl-0.5.9.jar does not work - it seems to be out dated since copying the jaffl.jar from JRUBY_HOME/build_lib does work

      attached is pom.xml which can start a fresh rails3 application:

      $ mvn  # should start the rails server which fails
      
      $ mvn -Pinstall-jaffl # will install the jaffl from JRUBY_HOME/build_lib/jaffl.jar
      

      after that with some little modifications of the classpath - using jline-0.9.94 which is on maven central and add jffi-native and finally using the copied jaffl.jar it works:

      $ mvn -Pworking
      
      1. pom.xml
        2 kB
        kristian meier

        Activity

        Hide
        Charles Oliver Nutter added a comment -

        jline is my fault; I will try to get that pushed today. Had some problems signing it.

        jffi-native should get published and we need to sort out the right version of jaffl too.

        Show
        Charles Oliver Nutter added a comment - jline is my fault; I will try to get that pushed today. Had some problems signing it. jffi-native should get published and we need to sort out the right version of jaffl too.
        Hide
        kristian meier added a comment -

        how can I help ?

        jruby-1.6.4 has

        <dependency>
        <groupId>org.jruby.extras</groupId>
        <artifactId>jffi</artifactId>
        <version>1.0.8</version>
        <scope>$

        {jar.scope}

        </scope>
        </dependency>
        <dependency>
        <groupId>org.jruby.extras</groupId>
        <artifactId>jffi</artifactId>
        <version>1.0.7</version>
        <scope>runtime</scope>
        <classifier>native</classifier>
        </dependency>

        I guess that should have the same versions ?!?

        jaffl-0.5.11 and jffi-1.0.10 are the latest in maven-repo

        jline is still missing !!

        would be really great to get a trouble free jruby classloading setup for project using maven (like two of mine sonatype project) - at least the trouble will not jruby itself

        Show
        kristian meier added a comment - how can I help ? jruby-1.6.4 has <dependency> <groupId>org.jruby.extras</groupId> <artifactId>jffi</artifactId> <version>1.0.8</version> <scope>$ {jar.scope} </scope> </dependency> <dependency> <groupId>org.jruby.extras</groupId> <artifactId>jffi</artifactId> <version>1.0.7</version> <scope>runtime</scope> <classifier>native</classifier> </dependency> I guess that should have the same versions ?!? jaffl-0.5.11 and jffi-1.0.10 are the latest in maven-repo jline is still missing !! would be really great to get a trouble free jruby classloading setup for project using maven (like two of mine sonatype project) - at least the trouble will not jruby itself
        Hide
        kristian meier added a comment -

        I just send some pull requests to fix this issue. it is actually really close.

        two issues remain unclear:

        • how does slf4j work with jruby - I could not find any reference in the code that it is used ?
        • bouncycastle: when starting rails with that jruby artifact I still see
          OpenSSL ASN1/PKey/X509/Netscape/PKCS7 implementation unavailable
          gem install bouncy-castle-java for full support.
          
        Show
        kristian meier added a comment - I just send some pull requests to fix this issue. it is actually really close. https://github.com/jnr/jnr-enxio/pull/2 https://github.com/jnr/jnr-unixsocket/pull/2 https://github.com/jnr/jnr-posix/pull/11 https://github.com/jruby/jruby/pull/279 two issues remain unclear: how does slf4j work with jruby - I could not find any reference in the code that it is used ? bouncycastle: when starting rails with that jruby artifact I still see OpenSSL ASN1/PKey/X509/Netscape/PKCS7 implementation unavailable gem install bouncy-castle-java for full support.
        Hide
        Charles Oliver Nutter added a comment -

        For the remaining issues:

        • slf4j will be used only if present; we depend upon it to compile our slf4j logger but it is not expected to be present at runtime for normal use.
        • BC is a difficult case. We have decided to incorporate it into JRuby proper for JRuby 1.7, since it seems like export restrictions don't apply in a meaningful way to publicly-available open-source crypto stuff. But perhaps we still don't have the maven deps wired properly?

        I'll review the PRs and try to get them in.

        Show
        Charles Oliver Nutter added a comment - For the remaining issues: slf4j will be used only if present; we depend upon it to compile our slf4j logger but it is not expected to be present at runtime for normal use. BC is a difficult case. We have decided to incorporate it into JRuby proper for JRuby 1.7, since it seems like export restrictions don't apply in a meaningful way to publicly-available open-source crypto stuff. But perhaps we still don't have the maven deps wired properly? I'll review the PRs and try to get them in.
        Hide
        kristian meier added a comment -

        added some improvements https://github.com/mkristian/jruby/commit/b03b534e3b9911dd46165396018d5cb0ed30edcb including the fix for openssl (just use the old version of bouncy-castle)

        I look at the diff between what jruby-core pulls into classloader and the files from jruby-complete.jar:

        https://gist.github.com/3719869

        so the missing pieces are:

        • ./com/headius/invokebinder
        • ./com/martiansoftware
        • ./jay/yydebug
        • maybe some ./jni/xyz/libjffi-1.2.so - not sure what gets pulled in because I am using linux or so
        • ./org/apache/tools/ant/ExitException.class - did not see any ref in source code, maybe is obsolete by now
        • ./org/Main.class - guess it is obsolete !?
        • ./org/jruby/org/objectweb/asm/commons - part of ant build
        • ./org/jruby/org/objectweb/asm/tree - part of ant build
        Show
        kristian meier added a comment - added some improvements https://github.com/mkristian/jruby/commit/b03b534e3b9911dd46165396018d5cb0ed30edcb including the fix for openssl (just use the old version of bouncy-castle) I look at the diff between what jruby-core pulls into classloader and the files from jruby-complete.jar: https://gist.github.com/3719869 so the missing pieces are: ./com/headius/invokebinder ./com/martiansoftware ./jay/yydebug maybe some ./jni/xyz/libjffi-1.2.so - not sure what gets pulled in because I am using linux or so ./org/apache/tools/ant/ExitException.class - did not see any ref in source code, maybe is obsolete by now ./org/Main.class - guess it is obsolete !? ./org/jruby/org/objectweb/asm/commons - part of ant build ./org/jruby/org/objectweb/asm/tree - part of ant build
        Hide
        kristian meier added a comment -

        after I wrote "part of ant" I realized where to fix all the missing pieces. so the diff from above is now after the change of build.xml

        now juby-core artifact is essentially the same as jruby-complete.jar

        @headius: if I can do more to get these pullrequest in - let me know

        Show
        kristian meier added a comment - after I wrote "part of ant" I realized where to fix all the missing pieces. so the diff from above is now after the change of build.xml now juby-core artifact is essentially the same as jruby-complete.jar @headius: if I can do more to get these pullrequest in - let me know
        Hide
        Charles Oliver Nutter added a comment -

        Sorry for the delay on this one!

        I have merged kristian's changes to master, preserving the updated jffi version we just spun to fix Win32 issues.

        I've also merged the pull requests into the JNR projects.

        We'll be looking at a big release party when we finally push JRuby 1.7RC1, won't we

        Please look over everything, all, and let us know if there's anything more we need to do to get maven artifacts in proper order.

        Show
        Charles Oliver Nutter added a comment - Sorry for the delay on this one! I have merged kristian's changes to master, preserving the updated jffi version we just spun to fix Win32 issues. I've also merged the pull requests into the JNR projects. We'll be looking at a big release party when we finally push JRuby 1.7RC1, won't we Please look over everything, all, and let us know if there's anything more we need to do to get maven artifacts in proper order.
        Hide
        kristian meier added a comment -

        almost - now we need to get rid of these remaining three snapshot dependencies.

        Show
        kristian meier added a comment - almost - now we need to get rid of these remaining three snapshot dependencies.

          People

          • Assignee:
            Charles Oliver Nutter
            Reporter:
            kristian meier
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: