Neues Scala-Projekt mit OSGi
Die Scala IDE für Eclipse erlaubt das Entwickeln von Scala-Applikationen in Eclipse. Sie hat aber noch einen weiteren Vorteil: Dank ihr kann man die Programmiersprache auch innerhalb einer OSGi-Umgebung nutzen. Die Sprackbibliothek wird nämlich als OSGi-Bundle zusammen mit der Scala IDE ausgeliefert.
Zunächst muss die Scala IDE installiert werden. Um ein OSGi-Bundle mit
Scala-Nature zu erzeugen, muss man in Eclipse dann zuerst ein ganz normales
Plugin-Projekt erzeugen. Danach muss man die Scala-Nature hinzufügen,
damit der Scala-Quellcode kompiliert werden kann. Dazu klickt man mit
der rechten Maustaste im Navigator oder Package Explorer auf das neue
Projekt und wählt "Scala/Add Scala Nature". Dadurch werden folgende
Einträge in die Datei .project eingefügt:
<buildCommand>
<name>org.scala-ide.sdt.core.scalabuilder</name>
<arguments>
</arguments>
</buildCommand>
<nature>org.scala-ide.sdt.core.scalanature</nature>
Damit die Scala Library genutzt werden kann, muss man in der
META-INF/MANIFEST.MF das Bundle org.scala-ide.scala.library als
Required Bundle angeben:
Der Scala-Compiler erstellt sodann normalen Java-Bytecode sodass eine
vollständige Integration mit Java und OSGi sichergestellt ist. Etwas
störend ist die unvollständige Unterstützung von OSGi-Package-Imports
der Scala IDE. Wenn man einmal ein Package aus einem Bundle per
Import-Package importiert hat, kann man danach auch Klassen aus
allen anderen Packages dieses Bundles im Scala-Quellcode importieren.
Die IDE zeigt dabei keine Fehler an. Zur Laufzeit kommt es jedoch
korrekterweise zu ClassNotFoundExceptions. Man hat somit zwei Möglichkeiten:
- Auf
Require-BundlestattImport-Packageumsteigen, was jedoch nicht empfohlen ist. - Nach dem Auftreten der Laufzeitfehler die Packages manuell importieren (erfahrende OSGi-Entwickler kennen diese Vorgehensweise sowieso) und auf eine neue Version der Scala IDE warten.
Add to: