Eclipse e4 RCP访问插件之间的服务

时间:2012-04-04 09:18:13

标签: java eclipse-plugin eclipse-rcp rcp e4

我目前正在使用Eclipse 4.2M6开发我的第一个Eclipse e4 RCP应用程序。我正在开发一个主插件,它有我的应用程序的核心代码,并定义了许多服务作为扩展,允许其他插件/片段挂钩到应用程序以添加新功能。

我的主要服务有其他插件应该用来注册新功能的方法,并以编程方式添加到主应用程序的模型中。但是,我不确定如何让这些插件查找服务并在插件启动时自行注册。

一个例子:

我在主插件中的服务界面:

public interface FeedManager {

    boolean registerFeed(Feed service);

    boolean unregisterFeed(Feed service);

    IObservableList getFeeds();
}

我想要的第二个插件:

public class TestFeed {

    ///this method could be in a constructor or @PostConstruct method instead
    @Inject
    public void init(FeedManager manager){    

        Feed feed = new Feed();
        feed.setName("Test feed");

        manager.registerFeed(feed);

    }

}

2 个答案:

答案 0 :(得分:0)

Eclipse E4提供片段和处理器以支持模块化。

Lars Vogel为此提供了一个很好的教程:

http://www.vogella.com/articles/Eclipse4Modularity/article.html

答案 1 :(得分:0)

+1 @Frank指向正确的教程。在那里,您需要在第二个插件中创建一个处理器。