# RCP - Plugin mit Fragment



## Linad (4. Sep 2007)

Hallo Allerseits!

Ich habe eine Frage betreffend RCP Programmierung. Ich habe ein Plugin erstellt und ein dazugehörendes Fragment. Das Fragment besitzt die Datenbank-Verbindung. Wie kann ich jetzt in der Methode postStartup() die Klassen dieses Fragments ansprechen? Sollte doch möglich sein oder?

Gruss
Linad


----------



## Saxony (6. Aug 2009)

Hiho,

soweit ich weiß geht das nicht. Man kann von einem Fragment aus auf Klassen des Host Plug-Ins zugreifen aber nicht umgekehrt. Ein Fragment ist nämlich nicht zwingend Bestandteil der endgültigen Distribution. In deinem Fall muss das DB Plug-In ein richtiges Plug-In werden, da es ja scheinbar direkt vom Host Plug-In verwendet werden soll.

Eine andere Möglichkeit wäre, über Extension Points des Host Plug-Ins auf Klassen zuzugreifen, welche von Fragmenten geliefert werden. Dann kannst du im Host Plug-In nachschauen ob solche Klassen angemeldet sind.


```
IConfigurationElement[] config = Platform.getExtensionRegistry().
getConfigurationElementsFor("de.myproject.myextensionpoints.myclass");

	Object o;

	for (IConfigurationElement e : config) {

		try {
			o = e.createExecutableExtension("class");

			if (o instanceof MyClass) {
				// do something
			}
		} catch (CoreException e1) {

			// error
		}
	}
}
```

Dazu muss aber die von den Fragmenten zu liefernden Klassen bzw. Interfaces dem Host Plug-In schon bekannt sein. Das ist aber mit einer Schnittstellendefinition gut zu meistern.

bye Saxony


----------



## Wildcard (6. Aug 2009)

Dein Fragment könnte zB einen OSGi Service bereitstellen den dein PlugIn konsumiert falls vorhanden.


----------

