Dev:EclipseHowTo

Aus YaCyWiki
Wechseln zu: Navigation, Suche

Icon work.png TODO: das ist der Import aus dem Forum, bitte gegenlesen, ggf. anpassen, auf einer passende Seite im Wiki verlinken und diesen Hinweis entfernen.

YaCy Eclipse Howto

Diese Anleitung ist für Entwickler, die sich gerne mit den Sourcen von YaCy auseinandersetzen wollen. Ich gehe davon aus, dass der Benutzer Eclipse schon kennt, in der Lage ist Plugins zu installieren und weiss was in Eclipse eine Perspektive oder ein View ist. Geschrieben ist diese Anleitung für Eclipse 3.1.

Wer Eclipse noch nicht hat und noch nicht kennt: Ich kann nur empfehlen es mal auszuprobieren, ist schnell, schön und einfach gut.

Subversion Plugins installieren

YaCy verwaltet seinen Sourcecode in einem Subversion Repository. Um direkt von Eclipse darauf zugreifen zu können werden zusätzliche Plugins benötigt.

Unter Eclipse Helios müssen Subclipse und die Subclipse Extension installiert werden:

Help -> Install New Software dann in Work with -> add

eintragen.

Und dann diese Plugins installieren:

  • Collaboration -> Subversive SVN Team Provider
  • Subversive SVN Connectors > Subversive SVN Connectors
  • Subversive SVN Connectors > SVNKit 1.3.2 Implementation (Optional)

Danach unter Window->Preferences->Team (beim Mac unter Eclipse->Einstellungen->Team): SVN->SVN Connector-> unter SVN Connector SVNKit 1.3.2 auswählen.

YaCy SVN Server einrichten

Add SVN Repository
YaCy SVN Repository

Dann wird die Verbindung zum SVN Server hergestellt, wo YaCy gehostet ist:

Window -> Open Perspective -> Other... -> SVN Repository Exploring

Mit der rechten Maustaste im SVN Repository View klicken, dann

New -> Repository Location...

Url: https://developername@svn.berlios.de/svnroot/repos/yacy

Dann auf Finish klicken. Wenn alles gut gegangen ist, so kann man jetzt folgenden Baum sehen:

Das ist der Inhalt des Repositorys. Branches ist noch leer, unter Tags findet man die abgezogenen Releases und Trunk ist die Head-Revision.

Importieren des Projektes in Eclipse

Um die Sourcen von YaCy kompilieren und bearbeiten zu können muss jetzt importiert werden:

Mit der rechten Maustaste auf trunk klicken, dann Check out as Project

Das dauert jetzt ein wenig, die gesamten Sourcen und Libraries, von denen YaCy abhängt werden geladen. Sobald er fertig ist auf die Java-Perspektive wechseln.

Dort mit der rechten Maustaste auf trunk klicken und dann Refresh.

Daraufhin liest Eclipse die Struktur von YaCy ein und fängt sofort an alles einmal durchzukompilieren. Wenn der Stand gerade nicht kaputt ist, sollte es im Problems View nur gelbe Warnungen geben, aber keine roten Fehler.

Das Projekt ist jetzt vollständig importiert und kann benutzt werden. Um aktuelle Änderungen vom YaCy zu bekommen, sollte man jeden Tag wenigstens einmal direkt auf trunk mit der rechten Maustaste und dann Team -> Update auslösen.

Compiler and Validation Settings

YaCy hat einige XML-Dateien mit einer eigenen Template-Syntax, die nicht von Eclipse verifiziert werden können. Um mit diesen XML Dateien arbeiten zu können muss die Verifikation abgeschaltet werden. Dazu unter Window->Properties (beim Mac: Eclipse->Einstellungen) in Validation die Häkchen für die Validatoren unter Build entfernen.

Einrichten der Ant-Tasks

Eclipse bietet eine Integration von Ant-Tasks an, was sich für YaCy natürlich anbietet:

Run -> External Tools -> External Tools Configurations...

Dort einen neuen Ant Build anlegen, auf dem Main Tab:

Name: Build YaCy 
Buildfile: [Browse Workspace] /bin/build.xml ${workspace_loc:/yacy/build.xml}
Base Directory: [Browse Workspace] trunk ${workspace_loc:/yacy} 

Dann Umschalten auf den Target-Tab, dort das "all"-Target abschalten, und dafür "compile" aktivieren. Dann Apply klicken und danach kann man auch gleich Run probieren.

Das gleiche Spiel nochmal, diesmal ist der Name "Run YaCy" und das Target ist "run". Jetzt nur noch Apply und Run und: YaCy startet innerhalb von Eclipse, man kann in der Console den normalen Output sehen.

Es lohnt sich gleich als nächstes noch ein "Stop YaCy" Target einzurichten, mit dem man YaCy wieder stoppen kann. Auch wenn man die Ausgabe in die Konsole anhält läuft YaCy nämlich weiter.

Natürlich kann man entsprechend auch die anderen Targets einrichten oder sie kombinieren wie einem das gefällt. Man muss auch zum Starten der Tasks nicht immer über das Menü gehen, sondern kann diese direkt über die Toolbar aufrufen.

So... jetzt kann man mit allen Features einer gute Java-IDE den YaCy Code durchstöbern, bearbeiten, bauen und direkt ausprobieren wie es funktioniert. Dann mal fröhlich ans Werk. Als nächstes, kündige ich schonmal an, kommt eine Anleitung zum Debuggen von YaCy in Eclipse, dann wirds erst richtig interessant.

YaCy debuggen mit Eclipse

Für alle die gerne mal debuggen wollen, hier endlich die Anleitung. Vorgesetzt ist ein eingerichtetes Eclipse, wie oben beschrieben. Am bestern erstmal YaCy updaten mit der aktuellsten Version (Team -> Update).

Debug-Task einrichten

Run -> External Tools -> External Tools...

Name: Build YaCy 
Buildfile: [Browse Workspace] build.xml 
Base Directory: [Browse Workspace] trunk

Target: debug

Apply klicken, dann Run.

Die Java VM, in der YaCy läuft, startet jetzt im Debug-Mode. Es wird eine Remote-Debugging Verbindung auf Port 8000 geöffnet.

Debug-Profil einrichten

Um nun debuggen zu können, muss man ein Debug-Profil anlegen. Dazu klickt man

Run -> Debug...

dort dann

Remote Java Application -> New

Name: YaCy 
Projekt: <das Yacy Projekt> 

Dann auf Apply und los gehts mit Debuggen.

Wenn er nicht automatisch zur Debug-Perspektive wechselt, dann muss man das von Hand machen. Wenn er sich richt verindet, dann sieht man im Debug-View die Verbindung und kann sich dort die Threads ansehen.

Es handelt sich um eine Remote-Debugging Verbindung die geöffnet wird, zu der sich prinzipiell jeder verbinden kann. Wenn man also keine Firewall oder entsprechende Schutzvorrichtung hat, sollte man das nicht lange so laufen lassen.

YaCy remote debuggen

Das ganze funktioniert natürlich auch remote, d.h. wenn man YaCy auf einem Server laufen hat, oder ein Problem bei jemand anderem debuggen will. Dazu muss man lediglich im Debug-Profil den Host angeben, auf dem man debuggen will. Dort sollte dann der Port 8000 auch geöffnet sein.

Wichtig ist dabei natürlich, dass man die richtige Version synchronisiert hat, wie auf dem Host läuft mit dem man sich verbindet.

Viel Spass beim debuggen... es gibt übrigens in Eclipse die Möglichkeit die Breakpoints auf einzelne Threads zu beschränken, was in YaCy sehr hilfreich ist, als auch nur beim Erfüllen bestimmer Bedingungen anzuhalten.

YaCy starten

Unter Run -> Run Configurations... sieht man die Run Configurations. Hier auf Java Application klicken und dann auf das Datei-Symbol mit dem '+' klicken. Nun

  • unter Name 'YaCy Start' eintragen,
  • unter Project auf 'browse' klicken und 'yacy' auswählen.
  • unter Main Class auf 'Search..' klicken und 'net.yacy.yacy' auswählen.
  • Dann auf Arguments (Reiter oben) klicken und unter VM Arguments '-Xmx600m' eintragen.

Zum Schluss auf Run klicken.

Yacy stoppen

Noch eine Yacy-Konfiguration anlegen und als Parameter "-stop" angeben.

Links