September 2009 Archiv

Vorschau auf JRuby 1.4

Die JRuby-Entwicklung geht trotz oder gerade wegen des Arbeitgeberwechsels (JRuby-Team verlässt Sun) unaufhaltsam weiter.

Gerade wurden, neben den üblichen Bugfixes, 5 Hauptthemen der neuen Version JRuby 1.4 angekündigt.
  1. JRuby 1.4 wird kompatibel zu Ruby 1.8.7

  2. Weitere Verbesserungen der Ruby 1.9 Unterstützung.

  3. Ein neuer YAML-Parser wird enthalten sein. (geschrieben von Ola Bini)

  4. Die Java-Integration wird verbessert.

    Genauer gesagt soll es möglich sein, präziser zu bestimmen, welche Java-Methoden angesprochen werden sollen.
    Zur Zeit gibt es nämlich das Problem, dass, wenn man z.B. die Methode use() bei dieser Java-Klasse
    public class Overloaded {
        public static void use(int i) { /* ... */ }
        public static void use(long l) { /* ... */ }
    }
    
    mit JRuby aufruft,
     
    Java::Overloaded.use 10
     
    
    die Methode public static void use(long l) genutzt wird. Das jetzige JRuby-Verhalten erzwingt eine Umwandlung von Ruby-Fixnum in einen long-Wert in Java. Daher kann nie die Java-Methode mit dem int-Argument aufgerufen werden.

  5. Die Generierung von echten Java-Klassen aus Ruby wird "experimentell" enthalten sein.

    Zum Beispiel wird aus:
    require 'java'
    require 'jruby/core_ext'
    
    class SimpleTest
      def equals
        raise "not equal" unless 1.0 == 1
      end
    end
    
    SimpleTest.add_method_signature("equals", [java.lang.Void::TYPE])
    SimpleTest.add_method_annotation("equals", org.junit.Test => {})
    SimpleTest.become_java!
    
    package ruby;
    import org.junit.Test;
    public class SimpleTest {
        @Test
        public void equals() {
            // dispatch back to Ruby code here
        }
    }
    
Ausführlicher kann man sich die Punkte und Beispiele im Engine Yard Blog durchlesen. www.jruby.org
5 Things to Look for in JRuby 1.4
JRuby Ruby-to-Java Compiler

JRuby Anwendungen kundenspezifisch anpassen

Branding und Customizing einer JRuby on Rails Anwendung

Wenn man Rails-Anwendungen für Kunden betreibt, muss man frühzeitig an kundenspezifische Anpassungen denken. Neben dem kundenspezifischen Design (Farben und Logos aus dem Corporate Design, "Branding") spielen dabei auch konfigurierbare Feature-Sets ("Customizing") eine wichtige Rolle. Natürlich wird jeder Kunde sowohl seine eigene Datenbank bekommen als auch seinen eigenen Rails-Server: Sicherheit geht vor! Jedoch will man als Entwickler nicht deswegen mehrere Kopien des Quelltextes auf dem aktuellen Stand halten müssen. In diesem Artikel wollen wir unser Branding-Konzept am Beispiel unserer Zeiterfassung ObjectTime vorstellen. An den Stellen, wo wir es einsetzen, hat es sich bereits ausgezahlt.

Rails 2.3.4 im Tomcat 6

Da mit dem Einzug von Rack 1.0 das Upgrade auf Rails 2.3 unter JRuby etwas problematisch war, mussten wir bisher mit Rails 2.2 Vorlieb nehmen (zumindest bei den Anwendungen, die Cookies benutzten). Mit dem Erscheinen von JRuby-Rack 0.9.5 werden diese Funktionen nun auch unterstützt. Wir haben gleich die komplette Infrastruktur erneuert: Mit dem Warbler 0.9.14 kommt nun auch JRuby 1.3.1 zum Einsatz (mittlerweile gepackt im Gem "jruby-jars").

Erste JRuby Konferenz - Kostenlos!

JRubyConf 22. November 2009 in San Francisco

Nach drei Jahren JRuby Entwicklung ist es soweit die erste reine JRuby Konferenz steht an und das kostenlos! Ok sie findet nicht in Europa statt, sondern in San Francisco. Aber sicherlich wird es auch bald bei uns JRuby Konferenzen geben.

Auf www.jrubyconf.com findet man weitere Infos über die Konferenz und Registrierung. Sie wird von Engine Yard präsentiert, der Firma, bei der seit Neustem der Großteil der JRuby Kernentwickler arbeitet. www.jruby.org
www.jrubyconf.com
Announcing JRubyConf 2009