Mac OS 10.8 Mountain Lion gcc

Huch – XCode 4.6 installiert und immer noch kein Compiler für die Kommandozeile? Na so was? – Nun muss man im XCode (4.6) über Menü Preferences -> Download die Command Line Tools, mithin den gcc nachinstallieren.

Bildschirmfoto 2013-02-17 um 19.42.56

Nach erfolgreicher Installation hat man einen Compiler. Aber Vorsicht: ist kein “richtiger” gcc sondern LLVM-GCC. Wer den Gnu Compiler gcc bevorzug/benötigt, sollte sich auf Homebrew umsehen.

Posted in IT | Tagged

Play! MySQL Driver Konfiguration

Wer erste Schritte mit dem Web FrameworkPlay! und Java unternehmen will, dem sei das Tutorial der Play Homepage empfohlen, sehr einfache und gut nachvollziehbare Schritt-für-Schritt Anleitung anhand einer kleinen Webanwendung todolist.

Am Ende des Tutorials wird die Anwendung in die Heroku Cloud deployt. Wer das nun nicht gleich möchte und die Anwendung erst mal lokal gegen eine nicht flüchtige Datenbank verbinden möchte, der lese hier die Beschreibung zur Konfiguration einer MySQL-Datenbank für die Anwendung. Es müssen lediglich der MySQL-JDBC-Treiber in das Play-Projekt geladen und die Datenbankverbindungsparameter konfiguriert werden.

Play! muss mitgeteilt werden, dass das Projekt den Mysql-JDBC-Driver benötigt, deshalb Eintrag in Datei projects/Build.scala vornehmen:
val appDependencies = Seq(
// Add your project dependencies here,
javaCore,
javaJdbc,
javaEbean,
"mysql"%"mysql-connector-java"%"5.1.18"
)

Die eigentliche MySQL-Treiber Konfiguration wird in der Datei conf/application.conf vorgenommen. Wenn als ORM-Tool ebean verwendet werden soll, dann bei der Gelegenheit gleich den Kommentar vor dem ebean-Eintrag entfernen:

# Ebean configuration
# ~~~~~
# You can declare as many Ebean servers as you want.
# By convention, the default server is named `default`
#
ebean.default="models.*"

...

# DH MySQL DB
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost/test1?characterEncoding=UTF-8"
db.default.user="play"
db.default.password="play"

Danach muss das Projekt den MySQL-Treiber erst mal laden, das wird über die play console erledigt: play Befehle reload und update ausführen, der MySQL-Treiber wird per maven-repository in das Projekt geladen.

[myFirstApp] $ reload
[info] Loading project definition from /home/hessen/workspace/myFirstApp/project
[info] Set current project to myFirstApp (in build file:/home/hessen/workspace/myFirstApp/)
[myFirstApp] $ update
[info] Updating {file:/home/hessen/workspace/myFirstApp/}myFirstApp...
[info] downloading http://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.18/mysql-connector-java-5.1.18.jar ...
[info] [SUCCESSFUL ] mysql#mysql-connector-java;5.1.18!mysql-connector-java.jar (3152ms)
[info] Done updating.
[success] Total time: 11 s, completed Feb 16, 2013 8:15:01 PM

Das MySQL Datenbankschema sowie Datenbankuser sollten freilich angelegt sein. Als Merker hier das als MySQL root auszuführende SQL:

create database test1;
grant all privileges on test1.* to play@'localhost' identified by play;
flush privileges;

Play bzw. der ORM Persistance Layer avaje ebean legt im Datenbankschema die Datenbankobjekte (Tabellen) dann selbstständig bei Ausführung der Anwendung an. (ggf. wird man beim ersten Aufruf der Webapplikation aufgefordert das Ausführen div. SQL-Statements durch die Anwendung zu bestätigen -> so tun).