# Frage zu Eclipse Plugin Development



## hdi (13. Sep 2010)

Hey,

ich hab hier unter Eclipse ein Plugin Projekt erstellt, welches ich entweder als Feature exportieren und dann auf irgendeiner Eclipse Plattform installieren kann, oder aber direkt als Eclipse App starten oder debuggen kann. Dabei erstellt er halt quasi on-the-fly ne Eclipse Instanz bei der dieses Plugin installier ist.
Also soweit meine Kentnisse zu dem ganzne Plugin Development, das passt ja auch, aber:

Nun hab ich ein anderes Projekt gezogen, welches auch aus Plugins besteht.
Aber die kann ich irgendwie _nicht _starten, wenn ich nen Rechtsklick auf einen Plugin-Ordner mache steht da nur "Run on Server". Wenn ich das versuche bekomm ich aber ne Msg dass das nicht geht, und danach ist diese Option auch nicht mehr da.

Konkret handelt es sich um den Source Code des EPF Composers, den ich hier ausgecheckt hab:
EPF Composer Development Guide

Ich bin halt grad dabei ein Plugin für diesen EPF schreiben, und da es keine ordentliche API dafür gibt wollte ich mir jetzt einfach das ganze Projekt ziehen und debuggen, um mal in den Code reinschauen zu können.
Aber keine Ahnung wie ich's starten soll.

Ich hab alles ausgecheckt aus dem obigen Repository, hab auch keine Compile Fehler.
Aber ich kanns nicht starten, und das finde ich komisch, da es für mich so aussieht wie ein ganz normales Plugin Projekt, so wie auch mein eigenes. Wieso geht da nix?

Ich würd mich riesig über Hilfe freuen - wenn das vielleicht mal jemand auscheckt und sich anschaut. Ohne das zu tun wird's wohl sehr schwer mir hier zu helfen..
Vielleicht weiss ja jemand wie man diesen Code debuggen kann (oder zumindest das Plugin mal starten)

Dank euch!!


----------



## Wildcard (13. Sep 2010)

Hast du vielleicht das 'plugins' Verzeichnis ausgecheckt anstatt die einzelnen Verzeichnisse *in* 'plugins'?


----------



## hdi (13. Sep 2010)

Ich hab im zweiten Anlauf sogar mal ALLES ausgecheckt (nicht empfehlenswert ^^), d.h. mein Projekt sieht im Package Explorer so aus:

org.eclipse.epf
  - ..
  - ...
  - plugins
     - ...
     - ...

Der plugins Ornder ist alles andere als leer, da sind etwa 100 Sub-Ordner drin, das sind zT Features (d.h. nur ne feature.xml aber kein src-Ordner), zT aber eben auch Plugins, d.h. mit ner plugin.xml und auch nem src-Ordner mit Java Klassen. Wenn ich dann auf diesen Plugin-Ornder Rechtsklick mach und Run As, geht eben nix.
Ich muss sagen ich hab das auch nur beliebig getestet, es sind ja wie gesagt viele Ordner in diesem plugins-Ornder.

Aber eig. müsste man doch alles starten können was ne plugin.xml und Source-Code enthält?!

PS: Das war glaub ich Rekordzeit im ersten Posting auf einen neuen Thread um 23 Uhr in einem so abgeschiedenen Subforum


----------



## Wildcard (13. Sep 2010)

*Nicht* org.eclipse.epf auschecken! Du musst die einzelnen Teile org.eclipse.epf.authoring.ui, org.eclipse.epf.base, ... auschecken.
Der Screenshot auf der von dir verlinkten Seite zeigt übrigens exakt was du zu tun hast.


----------



## hdi (13. Sep 2010)

Ich habe erst nur genau das ausgecheckt was beim Link gezeigt wird. Als das nicht ging hab ich im zweiten Anlauf mal alles ausgecheckt.

Ich hab alle Unterordner, zB:

plugins
---org.epf.authoring.ui
------help
------icons
------META-INF
------schema
------src

In diesen ganzen Ornder ist Zeugs drinnen. Und im org.epf.authoring.ui Ornder selber sind außer diesen Subordner auch noch ne build.properties, plugin.properties und plugin.xml

Rechtsklick auf den ganzen org.epf.authoring.ui Ordner, Run As -> Run on Server:



> The selection did not contain any resources that can run on a server



Und Run As "Eclipse Application" steht gar nicht zur Auswahl, so wie es bei meinem eigenen Plugin Projekt der Fall ist.


----------



## Wildcard (13. Sep 2010)

Ist das wirklich so schwer zu verstehen? Du musst die einzelnen Plugins als Top Level Items auschecken genau wie auf dem Screenshot zu sehen. Wenn du ein Verzeichnis 'plugins' in deinem Workspace siehst, hast du es falsch gemacht.


----------



## hdi (13. Sep 2010)

> Ist das wirklich so schwer zu verstehen?


Hoppla  Darauf hab ich nich so geachtet, ich hab nur gesehen der markiert den gesamten Inhalt des plugin Ordners, also dachte ich kann ich ja gleich den ganzen Ornder nehmen. Bei Windows würd das ja keinen Unterschied machen zB. Dass das nen Unterschied macht, daran hab ich gar nicht gedacht. (Versteh ich auch nicht ehrlich gesagt, ich hab ja alle Resourcen)

Dann versuch's ich jetzt nochmal wirklich gena so.. 
Wird dann wohl auch gehen..

Aber versteh ich das richtig dass ich dann nicht quasi den komplette EPF Composer starten/debuggen kann? Weil ich kann ja dann nur einzelne Plugins starten? Das sind ja dann jeweils nur irgendwelche Einzelteile des Composers in eine normale Eclipse Umgebung eingefügt wenn ich ein Plugin starte, oder?

*Danke!*


----------



## Wildcard (13. Sep 2010)

> Hoppla  Darauf hab ich nich so geachtet, ich hab nur gesehen der markiert den gesamten Inhalt des plugin  Ordners, also dachte ich kann ich ja gleich den ganzen Ornder nehmen. Bei Windows würd das ja keinen Unterschied machen zB. Dass das nen Unterschied macht, daran hab ich gar nicht gedacht. (Versteh ich auch nicht ehrlich gesagt, ich hab ja alle Resourcen)


Eclipse Projekte sind immer auf oberster Ebene (wird sich mit Eclipse 4.0 allerdings ändern). Dort liegt eine .project die unter anderem festlegt welche Builder und Natures für das Projekt aktiv sind. Wenn du 'plugins' auscheckst, legt Eclipse eine Default .project an. Das ist dann kein Java Projekt, kein PDE Projekt, hat keine Classpath Settings, keinen PDE Builder und ist daher auch völlig nutzlos, obwohl die Dateien die gleichen sind.



> Aber versteh ich das richtig dass ich dann nicht quasi den komplette EPF Composer starten/debuggen kann? Weil ich kann ja dann nur einzelne Plugins starten? Das sind ja dann jeweils nur irgendwelche Einzelteile des Composers in eine normale Eclipse Umgebung eingefügt wenn ich ein Plugin starte, oder?


Wie das bei Eclipse immer ist: Du startest das OSGi Framework und durch die Launch Configuration legst du fest welche Bundles aktiv sind. Die aktiven Bundles bestimmen dann wie deine Applikation aussieht und was sie tut.


----------



## hdi (13. Sep 2010)

Ok danke, aber mir ist grad wieder eingefallen warum ich auch versucht hatte das komplette repository (bzw den epf ordner) auszuchecken:
Ich hab jetzt alle plugin-Ornder einzeln im Workspace. 

39412 Java Compile Errors und 265 Plugin Compile Errors.

Nice ;(

Ich hab nicht mal nen schimmer aus welchen APIs die ganzen vermissten Resourcen kommen müssten..
Im Link steht ja nur noch am Ende dass man evtl nen Refresh machen muss oder nen Clean Build. Aber das bringt nichts, die Fehler bleiben ???:L


----------



## Wildcard (13. Sep 2010)

Liegt vermutlich an deiner Target Platform. Ich würde komplexe Projekte nicht im Quellcode auschecken wenn du noch nicht sehr firm mit OSGi/Plugin Entwicklung bist. Füge EPF einfach deiner Target Platform hinzu. Nimm das SDK Feature wenn du den Source Code brauchst, das reicht zum debuggen, dafür müssen die Klassen nicht im Workspace liegen.


----------



## hdi (14. Sep 2010)

Also ich weiss nicht ob dir klar ist was ich genau vorhab: Ich will den EPF Composer an sich debuggen.
D.h. ich möchte im Source Code davon sehen, wo er hinspringt und was er tut wenn ich im EPF Composer zB auf Menü-Eintrag XY klicke, usw.
Das ist also total unabhängig von irgendeinem eigenen Plugin oder so.

Soll ich jetzt quasi ein Pseudo-Plugin debuggen, und EPF zur Target Platform hinzufügen? Aber der debugged doch dann nur mein Plugin, nicht den EPF.



> Nimm das SDK Feature wenn du den Source Code brauchst


mit dem Begriff kann ich leider auch nix anfangen  Meinst du jetzt diese Code-Einblendungen die Eclipse beim Programmieren zur Unterstützung anzeigt?

Also wie gesagt, ich will den EPF Composer selber debuggen. Wenn das wirklich geht ohne jetzt mit dem Source Code direkt rumzutun, dann bräuchte ich bitte ne Step by Step Anweisung.
Ich kann mich noch erinnern dass ich mal lange mit Target Plfatforms usw rumgetan habe, aber immer irgendwelche komischen Fehler bekam mit dem EPF.

Ich kenn mich mit diesem ganzen Eclipse Framework Zeugs wirklich nicht aus, ich bin schon froh dass ich inzwischen weiss wie ich ein eigenes Plugin schreiben und starten kann


----------



## Wildcard (14. Sep 2010)

Wenn man ein Feature Ausliefert trennt man üblicherweise in ein normales Feature und ein SDK Feature.
Das normale Feature enthält die Plugins, das SDK Feature die Plugins und die Source Bundles für jedes Plugin. PDE verlinkt diese Source Bundles automatisch sobald sie installiert sind, daher kannst du dir zB einfach den Quellcode von einem EditorPart ansehen, ohne das du das entsprechende Bundle tatsächlich als Source Code im Workspace liegen zu haben. Damit kann man dann natürlich auch Debuggen. Ohne Source Bundles bräuchte jeder Eclipse Entwickler einen riesigen Workspace mit hunderten von Plugins...
Allerdings scheint EPF es immer noch nicht geschafft zu haben eine Update Site bereitzustellen, daher wird es wohl auch keine korrekten Source Bundles geben.


----------



## hdi (14. Sep 2010)

Das heisst also mir bleibt doch nur der Weg über den Source direkt im Workspace?
Also muss ich mir jetzt dann alle noch fehlenden Resourcen holen.. Wie auch immer ich die überhaupt finde :bahnhof: Und dann weiss ich noch immer nicht was ich mit einzelnen Plugins anfangen soll.
Oder ist das jetzt wieder die Geschichte mit der Target Platform?

Ich muss ehrlich sagen ich versteh bei den meisten Antworten von dir (In diesem Zusammenhang) gar nichts  Du formst da Sätze, da kommen Dinge drin vor die hab ich noch nie gehört, und ich kann mir nicht annähernd vorstellen was ich jetzt konkret tun könnte.



> Ich würde komplexe Projekte nicht im Quellcode auschecken wenn du noch nicht sehr firm mit OSGi/Plugin Entwicklung bist.


Mir bleibt jetzt nix anderes übrig als darin jetzt firm zu werden oder ^^
Was schlägst du mir jetzt vor, was soll ich machen? Wo ist mein erstes Problem, wo finde ich Literatur dazu? Also wenn du herausfinden wollen würdest, was genau passiert wenn man im EPF Composer irgendwo drauf klickt oder irgendetwas eingibt/speichert, wie würdest du das jetzt machen?

Danke für deine ewige Geduld!


----------

