Ich baue ein Eclipse-Plug-in, das eine Reihe von Kernfunktionen im regulären Plug-in-Projekt bietet. Die optionalen Funktionen stelle ich über Fragment-Projekte bereit. Aber ich brauche die Fragmente, um sich selbst mit dem Haupt-Plug-in beim Start zu registrieren.
Ich kann keinen Bundle-Activator im Fragment-Projekt haben. Ich frage mich also, ob es einen alternativen Mechanismus gibt, um einen Einstiegspunkt oder einen Rückruf zu deklarieren, den ich einhaken kann?
Und wenn es keine andere Möglichkeit gibt, als das Fragment-Projekt in ein reguläres Plug-in-Projekt zu konvertieren, gibt es dann einen Nachteil, den ich beachten muss?
Dies ist die Lösung, die ich auf der Grundlage der akzeptierten Antwort verwendet habe:
final IExtensionRegistry registry = Platform.getExtensionRegistry();
final IExtensionPoint extensionPoint = registry.getExtensionPoint("myextensionid");
final IExtension[] extensions = extensionPoint.getExtensions();
for (int j = 0; j < extensions.length; ++j)
{
final IConfigurationElement[] points = extensions[j].getConfigurationElements();
for (int i = 0; i < points.length; ++i)
{
if ("myelementname".equals(points[i].getName()))
{
try
{
final Object objImpl= points[i].createExecutableExtension("class");
objImplList.add(provider);
}
catch (CoreException e)
{
}
}
}
}