我正在构建一个Eclipse插件,提供一组核心功能,并通过片段项目提供可选功能。但我需要在启动时让这些片段向主插件注册自己。
我的片段项目中不能有Bundle-Activator。所以我想知道是否有其他机制可以声明入口点或挂接某个回调函数?
如果没有其他选择,只能将片段项目转换为常规插件项目,那么我需要注意哪些缺点?
以下是我使用的解决方案,基于被接受的答案:
我的片段项目中不能有Bundle-Activator。所以我想知道是否有其他机制可以声明入口点或挂接某个回调函数?
如果没有其他选择,只能将片段项目转换为常规插件项目,那么我需要注意哪些缺点?
以下是我使用的解决方案,基于被接受的答案:
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)
{
}
}
}
}