Donnerstag, 22. Januar 2009

Installation svn/javasvn/rapidsvn 1.4.6 auf Ubuntu 8.04/8.10

Teilen
Möchte man eine ältere Version von Subversion auf Ubuntu Hardy Herion oder Intrepid installieren empfiehlt sich folgendes:
  • Die Packages downloaden, nicht mit Synaptic installieren
  • Download und Install der Binaries von libsvn1
  • Download und Install der Binaries von subversion
  • Download und Install der Binaries von libsvn-java
  • Download und Install der Binaries von libsvncpp0c2a
  • Download und Install der Binaries von rapidsvn_0.9.4-3
Danach sollte man mit Synaptic prüfen ob die richtige Version (z.B. 1.4.6) aller Packages installiert ist und diese dann gegen Upgrades sprerren (Lock Version)

Das Paket libsvn-java ersetzt das ältere libsvn-javahl! JavaHL wird bekanntlich für Java SVNClient wie Subclipse benötigt.

Auf keinen Fall sollte man in Versuchung kommen libsvn-javahl installieren. Dies ist ein Dummy Package und upgraded die betroffenen svn Packages auf die neuste Version!

Damit Eclipse die JavaHL Libraries beim Start findet, fügt man
-Djava.library.path=/usr/lib/jni
als vmargs hinzu.

(Getestet auf Intrepid mit SVN 1.4.6 und Eclipse 3.3,3.4)

Relationship Annotations in @Embeddable unzulässig (JPA1.0)

Teilen
Laut JPA 1.0 Specification ist der Gebrauch von Relationships in @Embeddable annotierten Klassen unzulässig, somit ist die Idee von embedded Valueobjects in Entities nur halbherzig durchgezogen worden (... ein fine-grained Domainmodel sollte doch guter Stil sein!?)

Es bleibt also abzuwarten was JPA2.0 in diesem Sinne bringt.

Beispiel:

@Embeddable
public class UserDetails implements Serializable {

@OneToMany(mappedBy ="id") // unzulaessig!!
private Set emails = new HashSet();

...
}

... wäre schön, ist aber nicht. Die @Embeddable annotierte Klasse darf lediglich einfach annotierte Properties (Basic, Column, Lob, Temporal, Enumerated) enthalten (siehe Kap. 9.1.34/JPA1.0 Spec)