Eclipse RCP: Target platform - Eclipse vs. Equinox?

微笑、不失礼 提交于 2019-12-18 04:52:47

问题


I'm just starting with OSGi and Eclipse RCP. Could someone explain to me the difference between "Eclipse" and "Equinox" as the target platform, when creating a new eclipse plugin project?
I still know that Equinox is Eclipse's implementation of OSGi.
I read in some articles that eclipse rcp is also based on Equinox. So where is the difference between the target platform you have to choose in a new Eclipse Plugin Project?

Best regards


回答1:


It is about the environement in which the module you will be creating will run: see this

  • Vogalla's RCP Tutorial
  • Vogella's OSGi with Eclipse Equinox

Eclipse Equinox is the runtime environment on which the Eclipse IDE and Eclipse RCP application are based.
In Eclipse the smallest unit of modularization is a plugin. The terms plugin and bundle are (almost) interchangable. An Eclipse plugin is also an OSGi bundle and vice versa.

  • bundle for OSGi, able to run in the Equinox framework (within or outside of Eclipse)
  • plugin for Eclipse, to run within an Eclipse-based application.

See Equinox Quick Start Guide:

The Equinox OSGi framework implementation forms the underpinnings of the Eclipse RCP and IDE platforms but it is in fact a fully standalone OSGi implementation.

You can run a bundle independently from Eclipse:

java -jar org.eclipse.osgi_3.2.0.jar -console

Once this is running you will see an osgi> prompt. This is the OSGi console waiting for you to type commands




回答2:


Choosing "an OSGi framework": This simply creates a new bundle with no required plug-ins or imported packages (unless you choose an activator in which case the org.osgi.framework package shows up under imported packages).

Choosing Eclipse version: After clicking next the wizard gives you the checkbox "This plug-in will make contributions to the UI" and allows you to create a rich client application

Without any other options an Eclipse plugin will have org.eclipse.core.runtime as a required plugin. If you say the plug-in will make contributions to the UI then org.eclipse.ui is added to required plug-ins. By saying you want to create a rich client application the Templates are different on the final screen and you are forced to choose one to finish. Also your Activator will extend Plugin if you did not choose the UI option and AbstractUIPlugin if you did choose the UI option.

There is nothing different about the bundles that are created in either manner, the wizard just sets up some default required plug-ins/imported packages for you. Of course as VonC pointed out some of the dependencies setup by the Eclipse route may not be compatible with other OSGi implementations.



来源:https://stackoverflow.com/questions/3695305/eclipse-rcp-target-platform-eclipse-vs-equinox

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!