Eclipse RCP Export

Status
Nicht offen für weitere Antworten.

virus

Aktives Mitglied
Ich habe eine Standalone Eclipse RCP application. Wenn ich sie im Eclipse ausführe funktioniert alles problemlos.
Wenn ich sie aber nun exporte und sie ohne eclipse ausführen will hab ich gewisse probleme. Der folgende code gibt mir dann nichts zurück (im eclipse erhalte ich aber alle installierten plugins des gewählten schemas):
Code:
		IExtensionRegistry registry = Platform.getExtensionRegistry();
		
		HashMap<String, String> availablePlugins = new HashMap<String,String>();
		
		// gets the ExtensionPoint syncplugins (Plugin API)
		IExtensionPoint extensionPoint = registry.getExtensionPoint("com.universalsync.syncplugins");
		IExtension[] extensions = extensionPoint.getExtensions();
		
		// iterates for each available extension
		for (IExtension extension: extensions) {
			availablePlugins.put(extension.getNamespaceIdentifier(), extension.getLabel());
		}
		return availablePlugins;
Wenn ich aber über abaut schaue was für plugins geladen sind wird ein plugin angezeigt das zum schema com.universalsync.syncplugins gehört. Ich erhalte keine exception, gar nichts. Ich hab keine ahnung wie ich weiterkomme. :-( :-( :-(
 
Schau dir die Extension Point Registry View an (Wenn in deinem RCP nicht vorhanden, aufnehmen). Klapp das Plugin um das es geht auf und kontrolliere ob es wirklich eine Extension auf diese ID registriert hat.
 
Code:
<!ELEMENT extension (initzializer)>
<!ATTLIST extension
point CDATA #REQUIRED
id    CDATA #IMPLIED
name  CDATA #IMPLIED>

<!ELEMENT initzializer EMPTY>
<!ATTLIST initzializer
class CDATA #REQUIRED>
Das ist die dtd des schema.

Code:
   <extension-point id="syncplugins" name="Sync Plugins" schema="schema/syncplugins.exsd"/>
das ist im plugin.xml der applikation.



und das hier das plugin.xml (des plugins das nicht geladen wird)

Code:
<plugin>
   <extension
         id="syncplugin"
         name="Filesystem"
         point="com.universalsync.syncplugins">
        <initializer class="com.universalsync.FilesystemPlugin"/>
	</extension>
</plugin>

Es ist ziemlich komisch da alles funktioniert wenn ich es in eclipse ausführe. Nur beim export nicht.
 
Wildcard hat gesagt.:
Schau dir die Extension Point Registry View an (Wenn in deinem RCP nicht vorhanden, aufnehmen). Klapp das Plugin um das es geht auf und kontrolliere ob es wirklich eine Extension auf diese ID registriert hat.
sry welche extension muss ich hinzufügen?
 
Code:
<plugin>
   <extension
         id="com.universalsync.syncplugins"
         name="Filesystem"
         point="com.universalsync.syncplugins">
        <initializer class="com.universalsync.FilesystemPlugin"/>
	</extension>
</plugin>
 
Diese ID hättest du nicht ändern sollen.
Die Extension muss natürlich auf die ID des Extension Points registriert werden und die ist numal syncplugins
 
also jetzt hab ichs so:


Code:
<plugin>
   <extension
         id="syncplugins"
         name="Filesystem"
         point="com.universalsync.syncplugins">
        <initializer class="com.universalsync.FilesystemPlugin"/>
	</extension>
</plugin>
das funktioniert aber auch nicht :-(.
Ich kapiers einfach nicht, was ist denn bei der exportierten version anders als beim ausführen in eclipse? Muss eventuell noch irgendetwas ins manifest?

Gibt es irgendeine möglichkeit mehr infos über die geladenen plugins als über den about dialog herauszufinden?
 
Der Extension Point heißt anders!
Code:
<plugin>
   <extension
         id="syncplugins"
         name="Filesystem"
         point="syncplugins">
        <initializer class="com.universalsync.FilesystemPlugin"/>
   </extension>
</plugin>
 
das geht dann aber garnicht, "unkonw extension point"
macht doch auch sinn!?!? denne das plugin heisst "com.universalsync"

Code:
PLUGIN_ID = "com.universalsync";

wenn ich beim plugin unter "extensions" "add..." mache wird die extension auch als "com.universalsync.syncplugins" angezeigt
 
Ach dein Plugin heißt com.universalsync.
Ok, stimmt, dann müsste com.universalsync.syncplugins passen.
Vielleicht wird das plugin das sich auf den Point registriert nicht richtig geladen?
Gibt es Einträge im Error Log?
 
da kann ich nirgends etwas finden. weder direkt in der konsole beim ausführen noch sonst irgendwo.
 
hast du die target-plattform auf eclipse rcp only geswitched und nur die plugins reingenommen, die du brauchst? das kann man ja unter den PDE preferences so einstellen. weil beim ausführen wird sonst nämlich alles genommen, was im moment im aktuellen eclipse ist und beim export wird dann eventuell nicht alles exportiert.

ich mache das immer so:

1. eclipse rcp platform runterladen (http://download.eclipse.org/eclipse...ad.php?dropFile=eclipse-RCP-3.3.1.1-win32.zip)
2. target plattform auf die eclipse rcp anpassen (unter preferences -> plugin development -> target platform)
3. zusätzliche plugins dahin kopieren und bei der target plattform adden

dadurch habe ich nur die notwendigen plugins. wichtig ist dann natürlich, dass beim launch auch nur diese plattform angezogen wird. viele probleme meinerseits ergaben sich durch zu viele plugins, nicht durch zu wenig in der target platform 🙂
 
hab das problme gefunde (endlich ;-))
es lang doch an einer build.properties eines plugins. da fehlte ein eintrag für das plugin.xml :-( jetzt funktioniert alles perfekt. Danke für deine zeit und hilfe!!!

wenns dich interessiert unter http://www.universal-sync.com gibts bald ein build unsere synchronisationssoftware
 
das Team ist zu männerlastig, da fehlt die weibliche Seite 😉

Und die Fachhochschule steht im falschen Schweizer Kanton *duck*
 
die weibliche seite ins team zu bringen ist leider etwas schwer bei 1-2 Frauen/Jahrgang. :-(

RicoSoft hat gesagt.:
Und die Fachhochschule steht im falschen Schweizer Kanton *duck*

und da sind wir uns absolut einig 🙂
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben