# Eclipse RCP Export



## virus (6. Dez 2007)

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):

```
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. :-( :-( :-(


----------



## Wildcard (6. Dez 2007)

Was heißt nichts?
extensions ist ein Array der Länge 0?


----------



## virus (6. Dez 2007)

ja genau extensions hat die grösse 0


----------



## Wildcard (6. Dez 2007)

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.


----------



## virus (6. Dez 2007)

```
<!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.


```
<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)


```
<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.


----------



## virus (6. Dez 2007)

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?


----------



## Wildcard (6. Dez 2007)

id=syncplugins
Die extension wird aber auf com.universalsync.syncplugins registriert.


----------



## virus (6. Dez 2007)

hab ich angepasst, brinngt aber nichts


----------



## Wildcard (6. Dez 2007)

Wie sieht's jetzt aus?


----------



## virus (6. Dez 2007)

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


----------



## Wildcard (6. Dez 2007)

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


----------



## virus (6. Dez 2007)

also jetzt hab ichs so:



```
<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?


----------



## Wildcard (6. Dez 2007)

Der Extension Point heißt anders!

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


----------



## virus (6. Dez 2007)

das geht dann aber garnicht, "unkonw extension point"
macht doch auch sinn!?!? denne das plugin heisst "com.universalsync"


```
PLUGIN_ID = "com.universalsync";
```

wenn ich beim plugin unter "extensions"  "add..." mache wird die extension auch als "com.universalsync.syncplugins" angezeigt


----------



## Wildcard (6. Dez 2007)

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?


----------



## virus (6. Dez 2007)

da kann ich nirgends etwas finden. weder direkt in der konsole beim ausführen noch sonst irgendwo.


----------



## RicoSoft (7. Dez 2007)

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


----------



## virus (7. Dez 2007)

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


----------



## RicoSoft (7. Dez 2007)

das Team ist zu männerlastig, da fehlt die weibliche Seite 

Und die Fachhochschule steht im falschen Schweizer Kanton *duck*


----------



## virus (10. Dez 2007)

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


----------

