Neu in Kategorie JRuby

JRuby, Rails3 und RailsWayCon 2010

JRuby

Die meisten JRuby-Nutzer kommen bekanntlich aus dem Java-Umfeld. Sie nutzen die Agilität der Scriptsprache Ruby mit der ausgereiften Infrastruktur und einer Unmenge an Bibliotheken der Java-Welt. Daher werden die meisten auch Ant kennen. In der Ruby-Welt heißt Ant Rake!

Thomas Enebo zeigt nun in seinem Blogeintrag wie man
  • Ant-Tasks mit Rake aufruft
  • Rake mittels Ant nutzt
  • Rake-Tasks als aufrufbare Ant-Targets importiert (und umgekehrt)

Ein weiterer interessanter Artikel von Charles Nutter gibt Tipps um eine bessere JRuby-Startzeit zu erreichen. Im Artikel JRuby Startup Time Tips zeigt er, wie man mittels JVM Java_OPTS die Startperformance beschleunigen kann.

Ruby on Rails 3

Die Rails 3 Beta ist nun schon eine Weile zum Ausprobieren freigegeben. Falls Euch vor dem geplanten Update eurer Rails 2.3.x Anwendung Fragen wie
  • Was muss man beim Update beachten?
  • Wo finde ich Anleitungen zur Rails 3 Umstellung?
  • Welche Plugins und Gems laufen schon mit Rails 3?
durch den Kopf gehen, hier ein paar interessante Links zu Rails 3.

Auf rubyonrails.de gibt es eine super Sammlung von Tutorials, Screencasts und Blogeinträgen.

Die Webanwendung http://railsplugins.org/ bietet eine gute Übersicht, welche Plugins schon für Rails 3 bereit sind. Diese Liste kann von allen aktiv erweitert und aktualisiert werden. Des Weiteren wird zu jedem Plugin angegeben, ob es threadsicher ist, mit Ruby 1.9 und/oder JRuby läuft.

RailsWayCon 2010

RailsWayConf 2010Wer sich lieber selbst ein Bild von der aktuellen JRuby/Rails-Entwicklung machen will, findet sicherlich wieder viele interessante Vorträge auf der diesjährigen RailsWayCon vom 31. Mai bis zum 2. Juni in Berlin.

GlassFish-Gem 1.0.0

Das GlassFish-Gem von Vivek Pandey ist in der Version 1.0.0 erschienen.

Neuerungen sind neben einigen BugFixes:
  1. die Implementierung mittels des neu erschienen Glassfish v3 Servers
  2. die Startzeit wurde um ca. 15% verbessert
  3. die Unterstützung von Rack (Ruby Webserver Interface) ist komplett
  4. es ist möglich, Glassfish mittels eines Codeblockes auszuführen
    GlassFish::Server.start(:address=>"127.0.0.1", :port=>4000) do
     use Rack::CommonLogger
     use Rack::ShowExceptions
     map "/hello" do
     use Rack::Lint
     run Proc.new {[200, {"Content-Type" => "text/html"}, "Hello"]}
     end
    end
    
  5. der Sinatra-Support wurde verbessert
  6. auf der Kommandozeile kann die IP Adresse mitgegeben werden
  7. die Konfiguration von Grizzly (NIO based HTTP Lib) kann mittels der glassfish.yml festgelegt werden
  8. man findet es nun auch bei GemCutter
Was ist eigentlich das GlassFish-Gem?

Rails 2.3.5, JRuby und Java

Es ist viel passiert in der letzten Zeit! JRuby ist in der Version 1.4 erschienen. Rails kommt mit einem neuen Bugfix-Release 2.3.5, in dem es auch mittels des RailsXss-Plugins von Michael Koziarski einen Vorgeschmack auf die kommende Rails 3 Version gibt.

Wer etwas mehr über die Vorträge zur ersten JRuby-Konferenz erfahren will, kann sich bei ruby-mine informieren.

Die JRuby-Entwickler Nick Sieger, Charles Nutter und Thomas Enebo schreiben auf dem Engine Yard Blog weiterhin interessante Artikel.

RubyMine 2.0 veröffentlicht

Seit der ersten Veröffentlichung von RubyMine arbeiten wir mit dieser coolen IDE und sind sehr zufrieden. Seit einigen Wochen konnten wir nun schon Beta-Versionen des neuen Releases testen und können sagen, dass JetBrains hier nochmal richtig gute Erweiterungen geschaffen hat: Oft verwendete Ruby- und Rails-Techniken wie HAML, RSpec, Cucumber und die Rails-I18n-API werden direkt von der IDE unterstützt und die Editoren wissen noch mehr über den Aufbau der Rails-Projekte, sodass viele neue Refactorings und Code Inspections möglich wurden. Außerdem wurde die JRuby-Unterstützung verbessert - so lassen sich nun zum Beispiel auch unter Windows die gestarteten Server ohne den Umweg über den Task-Manager beenden.

Die Arbeit mit den Betas machte schon Spaß, das fertige Release freut uns um so mehr.
Zum Download geht es hier.

JRuby 1.4 Release ist fertig

Die JRuby-Version 1.4 ist seit dem 2. November erhältlich. Einige Neuerungen sind die Ruby 1.8.7 Unterstützung (1.8.7 patchlevel 174), weitere Verbesserungen für Ruby 1.9 und die *.bat Scripte für Windowsnutzer. Die Java-Integration wurde durch neue Java- Methoden erweitert, der Windows-Installer erneuert, es gibt einen neuen YAML-Parser und vieles mehr.

Alle Neuerungen und die über 300 Bugfixes kann man sich auf der JRuby.org News Seite anschauen oder sich im Engine Yard Blogeintrag 5 Things to Look for in JRuby 1.4 noch ausführlicher und mit Beispielen erläutert durchlesen. JRuby.org Homepage
JRuby 1.4 Downloadseite
5 Things to Look for in JRuby 1.4

JRuby und Ruby interpretieren Erb-Kommentare unterschiedlich

Erst neulich berichteten wir von Kommentaren in Erb-Files, die das Layout zerstören. Heute haben wir eine unserer Anwendungen testweise auf reinem Ruby laufen lassen und mussten hier folgenden Unterschied feststellen. Wenn man in einem Erb-File einen einzeiligen Kommentar mit
<% # comment %> oder <%- #comment %>
schreibt, geht das unter JRuby - unter Ruby aber nicht. Dort werden in merkwürdiger Weise Teile von nachfolgenden Statements abgeschnitten, sodass dann Teile des HTML-Quellcodes auf der Webseite landen. Hier sollte also nur die korrekte Form <%# comment%> verwendet werden.

JRuby 1.4.0RC1 ist da

Die erste 1.4 JRuby Version liegt als Releasekandidat vor. Unter http://jruby.org/news werden die Neuerungen und über 200 Bugfixes seit Version 1.3.1 ausführlich beschrieben.

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!
ObjectTime Branding BlueObjectTime Branding Orange
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").
Bookmark and Share

Sponsor

Gesponsort von ObjectFab GmbH

Letzte Kommentare

  • iGEL: Auf GitHub sind auch aktuelle Versionen verfügbar. Sucht euch hier Mehr lesen
  • David Cresces: Jaa stimmt ein ähnliches Problem hatte ich auch schonmal vor Mehr lesen
  • David Cresces: Jaa stimmt ein ähnliches Problem hatte ich auch schonmal vor Mehr lesen
  • Martin: Zur Subversion-Problematik konnte dank JetBrains' Forum eine Lösung gefunden werden. Mehr lesen
  • Claudia: http://it-republik.de/jaxenter/news/Google-App-Engine-JRuby-on-Rails-und-Groovy-sind-dabei-048255.html Mehr lesen