OSGi Framework, Plugin dan Ekstensi Poin
OSGi pada dasarnya merupakan sebuah spesifikasi dari kerangka kerja tentang bagaimana untuk mendefinisikan, menyusun dan mengeksekusi komponen. Eclipse menggunakan ini untuk merangkai plugin bersama-sama dalam untuk berinteraksi dan berkolaborasi antara satu sama lain. Eclipse membangun melalui kumpulan plugin. Plugin API mendefenisikan meraka dan dependensi mereka. Dasar untuk arsitektur ini adalah runtime equinox yang merupakan implementasi OSGi. Eclipse menggunakan plugin dan OSGi menggunakan bundel,tetapi keduanya mempunyai istilah yang sama. OSGi Eclipse plugin menentukan bagaiman mendefinisikan:
API dapat digunakan oleh plugin lainnya.
Dependensi, paket atau plugin yang dibutuhkan untuk plugin yang berjalan dengan benar.
Osgi juga dapat menentukan dan menggunakan extension poin dalam aplikasi Eclipse. Extension Poin medefinisikan interface untuk plugin lain untuk berkontribusi kode dalam membangun perangkat lunak. Extension dan Extension Poin dijelaskan dalam file plugin.xml. File ini adalah file XML yang menyediakan inteface pengguna untuk merubah file ini. Extension yang berkontribusi dikumpulkan dari sebuah Eclipse RCP. Informasi dalam Extension Poin diubah menjadi apa yang disebut deskriptor dan disimpan.
Runtime
Perbedaan yang jelas antara program java yang normal dengan Eclipse Rich client platform (RCP) adalah tidaknya memiliki fungsi main() lagi. Dalam Eclipse Rich client platform (RCP) program ini sudah disediakan application.java . Biasanya pengembang tidak perlu mengubah apapun disana bersama dengan fungsi yang lainnya. Pengembang dapat mengontrol program dengan double klik plugin.xml tersebut.
Perspectives, Views dan Editors
Sebuah Perspectives menggambarkan konfigurasi tertentu dari View dan Editor. Perspectives mengatur elemen UI yang berhubungan dengan tugas tertentu. Perspectives didefenisikkan melalui “org.eclipse.ui.perspectives”. Workbench yang merupakan bagian dari perspective baik yang didefinisikan melalui kelas java maupun dalam titik ekstensi “org.eclipse.ui.perspectives” atau melalui “org.eclipse.ui.perspectivesExtensions”.